我希望在每个人都可以访问的 Windows 共享驱动器中创建一个“放置文件夹”。如果文件在文件夹中存放超过 X 天,我希望自动删除文件。
但是,似乎我发现的所有方法都可以使用文件的上次修改日期、上次访问时间或创建日期。
我正在尝试将此文件夹设为用户可以将文件放入其中以与某人共享的文件夹。如果有人将文件复制或移动到此处,我希望时钟在此时开始滴答作响。但是,除非有人实际修改了文件,否则文件的最后修改日期和创建日期不会更新。上次访问时间更新太频繁了……看来只要在windows资源管理器中打开一个目录就会更新上次访问时间。
有谁知道解决这个问题的方法?我认为每天对文件的散列进行编目,然后根据早于某个日期的散列使文件过期可能是一个解决方案......但获取文件的散列可能很耗时。
任何想法将不胜感激!
注意:
我已经在这里查看了很多答案……查看了文件服务器资源监视器、powershell 脚本、批处理脚本等。它们仍然使用上次访问时间、上次修改时间或创建时间……如上所述,它不符合上述需求。
我需要一个批处理脚本来从 Windows 中的 .bat 文件创建 ODBC/DSN 连接。我怎样才能做到这一点?
我需要在每次系统关闭时运行批处理脚本,无论计算机是否连接到网络。(问题应该无关紧要,但有问题的脚本会清除机器的打印队列。
但是,当我使用下面的这种方法时,当 PC 与网络脱机时,我无法运行此脚本。
我还可以补充一点,有问题的 PC 运行的是 Windows 10 Pro x64(版本 1809)。域控制器运行的是 Windows Server 2008 R2,这也是我运行gpedit.msc.
到目前为止我所做的:
我想要发生的事情:
ClearPrintQueue.bat无论 PC 当前是否具有网络连接,脚本都会运行。实际发生的情况:
ClearPrintQueue.bat脚本仅在 PC 当前可以通过网络访问SYSVOL共享时运行。细节:
我所做的是在域中创建一个组策略对象并将其链接到包含相关机器的测试 OU。
我编辑了 GPO 并导航到计算机配置->策略-> Windows 设置->脚本(启动/关机) ->关机
在关机属性如按如下:
单击“显示文件...”时,资源管理器将打开以显示文件夹\\example.com\SysVol\example.com\Policies\{1B61F884-9D14-4065-8265-F04FFDE41683}\Machine\Scripts\Shutdown
该文件夹的内容和文件 ClearPrintQueue.bat 如下: …
我有一个从批处理文件运行的进程,我只想在一周中的某一天运行它。
是否有可能获得星期几?
我发现的所有示例都以某种方式依赖“date /t”返回“Friday, 12/11/2009”,但是,在我的机器中,“date /t”返回“12/11/2009”。那里没有工作日。
我已经检查了我机器的“区域设置”,长日期格式确实包括工作日。短日期格式没有,但我真的不想改变它,因为它会影响我做的很多事情。
这个问题可能会成为有史以来最愚蠢的问题,因为我可能错过了显而易见的问题。无论如何,这里是:您可以评估批处理脚本中的表达式吗?例如,我想将两个数字相加并打印结果:
echo 4+2
Run Code Online (Sandbox Code Playgroud)
这将只打印“4+2”,而不是“6”。也许我在 Windows 上使用批处理脚本有点太过分了...
谢谢!
我正在尝试确定目标电脑是否至少有 2 GB 的可用空间。这是我到目前为止所拥有的:
@echo off
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set "FreeSpace=%%x"
IF /i %FreeSpace% GTR "2147483648" (ECHO C Drive Has Enough Available Disk For Install %FreeSpace%) else (ECHO C Drive Is FULL %FreeSpace%)
Run Code Online (Sandbox Code Playgroud)
我是否设置 2 GB 或将其更改为 200 GB 都没有关系,它总是说我有足够的空间,即使这个驱动器只有 90 GB...如果可以,请提供帮助。
这个问题是我上面代码的基础: Check free disk space using Batch commands
似乎它应该工作,但它没有。
windows hard-drive disk-space-utilization batch windows-command-prompt
我希望找到一种使用批处理文件而不是编写一些 vbscript 来删除基于通配符的注册表项的方法。有人有例子吗?
我被迫继续进行 MS 出色的手动删除 Office,如下所述:
我试图删除的一个例子是:
HKEY_CLASSES_ROOT\Installer\Products\*F01FEC HKEY_CLASSES_ROOT\Installer\UpgradeCodes\*F01FEC HKEY_CLASSES_ROOT\Installer\Win32Assemblies\*Office12*
reg 查询能否将值扔到一个变量中,然后可能用 for 循环命中它们?
FOR %%i IN (%PATH1% %PATH2% %PATH3%) DO (
reg delete %PATH1% /f
)
Run Code Online (Sandbox Code Playgroud) 我想知道您是否可以在批处理命令中编写以下操作?
eventvwr (打开事件查看器)这将使我的生活更有效率,只需几分钟/天;-)
更新
因为我们刚刚升级到 Windows 7,我需要一个新的解决方案,似乎是这样的:
%windir%\system32\eventvwr.exe targethostname
我想知道是否有一个 cmd 可以将现有证书从一个商店复制到另一个商店。我正在尝试将证书从用户中间证书颁发机构存储 (certutils -user -store ca fqdn-HOST-CA) 复制到机器的受信任根证书颁发机构存储 (certutils -store root fqdn-HOST-CA)。我尝试将 cmds 与 -addstore 一起使用,但没有用!!
certutil.exe -addstore root | certutil.exe -store -user ca fqdn-HOST-CA
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢
powershell windows-7 batch windows-command-prompt certificate-authority
在 Windows 批处理脚本中,如何迭代与物理卷或映射共享对应的所有驱动器号?
batch ×10
windows ×8
powershell ×2
scripting ×2
batch-file ×1
date ×1
eventviewer ×1
file-sharing ×1
group-policy ×1
hard-drive ×1
ms-dos ×1
odbc ×1
windows-7 ×1