标签: batch

使文件夹中的文件过期:x 天后删除文件

我希望在每个人都可以访问的 Windows 共享驱动器中创建一个“放置文件夹”。如果文件在文件夹中存放超过 X 天,我希望自动删除文件。

但是,似乎我发现的所有方法都可以使用文件的上次修改日期、上次访问时间或创建日期。

我正在尝试将此文件夹设为用户可以将文件放入其中以与某人共享的文件夹。如果有人将文件复制或移动到此处,我希望时钟在此时开始滴答作响。但是,除非有人实际修改了文件,否则文件的最后修改日期和创建日期不会更新。上次访问时间更新太频繁了……看来只要在windows资源管理器中打开一个目录就会更新上次访问时间。

有谁知道解决这个问题的方法?我认为每天对文件的散列进行编目,然后根据早于某个日期的散列使文件过期可能是一个解决方案......但获取文件的散列可能很耗时。

任何想法将不胜感激!

注意:
我已经在这里查看了很多答案……查看了文件服务器资源监视器、powershell 脚本、批处理脚本等。它们仍然使用上次访问时间、上次修改时间或创建时间……如上所述,它不符合上述需求。

windows powershell windows-server-2003 file-sharing batch

12
推荐指数
1
解决办法
9234
查看次数

如何从 Windows 中的 .bat 文件创建 ODBC 连接?

我需要一个批处理脚本来从 Windows 中的 .bat 文件创建 ODBC/DSN 连接。我怎样才能做到这一点?

windows odbc batch-file batch

9
推荐指数
1
解决办法
6万
查看次数

如果工作站未连接到网络,则不会运行关闭脚本

我需要在每次系统关闭时运行批处理脚本,无论计算机是否连接到网络。(问题应该无关紧要,但有问题的脚本会清除机器的打印队列。

但是,当我使用下面的这种方法时,当 PC 与网络脱机时,我无法运行此脚本。

我还可以补充一点,有问题的 PC 运行的是 Windows 10 Pro x64(版本 1809)。域控制器运行的是 Windows Server 2008 R2,这也是我运行gpedit.msc.

到目前为止我所做的:

  • 使用机器关闭脚本创建了Active Directory 组策略对象
  • 将脚本添加到SYSVOL上的 GPO 文件夹中。
  • 确认此 GPO 确实已下载到相关工作站的硬盘上,因此应该可以脱机访问。
  • GPO 中指定的路径是相对的,而不是绝对的。

我想要发生的事情:

  • 当 PC 关闭时,ClearPrintQueue.bat无论 PC 当前是否具有网络连接,脚本都会运行。

实际发生的情况:

  • 当 PC 关闭时,该ClearPrintQueue.bat脚本仅在 PC 当前可以通过网络访问SYSVOL共享时运行。

细节:

我所做的是在域中创建一个组策略对象并将其链接到包含相关机器的测试 OU。

我编辑了 GPO 并导航到计算机配置->策略-> Windows 设置->脚本(启动/关机) ->关机

关机属性如按如下:

关机属性

单击“显示文件...”时,资源管理器将打开以显示文件夹\\example.com\SysVol\example.com\Policies\{1B61F884-9D14-4065-8265-F04FFDE41683}\Machine\Scripts\Shutdown

该文件夹的内容和文件 ClearPrintQueue.bat 如下: …

windows active-directory group-policy batch

9
推荐指数
1
解决办法
1805
查看次数

在批处理文件中查找星期几?(Windows Server 2008)

我有一个从批处理文件运行的进程,我只想在一周中的某一天运行它。
是否有可能获得星期几?

我发现的所有示例都以某种方式依赖“date /t”返回“Friday, 12/11/2009”,但是,在我的机器中,“date /t”返回“12/11/2009”。那里没有工作日。

我已经检查了我机器的“区域设置”,长日期格式确实包括工作日。短日期格式没有,但我真的不想改变它,因为它会影响我做的很多事情。

windows-server-2008 ms-dos batch date

8
推荐指数
4
解决办法
11万
查看次数

评估 Windows 批处理脚本中的表达式

这个问题可能会成为有史以来最愚蠢的问题,因为我可能错过了显而易见的问题。无论如何,这里是:您可以评估批处理脚本中的表达式吗?例如,我想将两个数字相加并打印结果:

echo 4+2
Run Code Online (Sandbox Code Playgroud)

这将只打印“4+2”,而不是“6”。也许我在 Windows 上使用批处理脚本有点太过分了...

谢谢!

scripting windows batch

7
推荐指数
1
解决办法
1万
查看次数

确定 C 盘是否有 2 GB 可用磁盘空间

我正在尝试确定目标电脑是否至少有 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

7
推荐指数
2
解决办法
5548
查看次数

使用通配符删除注册表项

我希望找到一种使用批处理文件而不是编写一些 vbscript 来删除基于通配符的注册表项的方法。有人有例子吗?

我被迫继续进行 MS 出色的手动删除 Office,如下所述:

http://support.microsoft.com/kb/928218

我试图删除的一个例子是:

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)

scripting windows batch windows-registry

6
推荐指数
2
解决办法
1万
查看次数

Eventvwr的快捷方式>连接到另一台计算机

我想知道您是否可以在批处理命令中编写以下操作?

  1. eventvwr (打开事件查看器)
  2. 菜单操作 > 连接到另一台计算机
  3. 键入计算机的名称。
  4. 连接。

这将使我的生活更有效率,只需几分钟/天;-)

更新
因为我们刚刚升级到 Windows 7,我需要一个新的解决方案,似乎是这样的:

%windir%\system32\eventvwr.exe targethostname

windows command-line-interface batch eventviewer

6
推荐指数
2
解决办法
5499
查看次数

是否有 cmd/certutils 将证书从一个商店复制到另一个商店?

我想知道是否有一个 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

6
推荐指数
1
解决办法
3301
查看次数

批处理脚本:迭代驱动器号?

在 Windows 批处理脚本中,如何迭代与物理卷或映射共享对应的所有驱动器号?

windows batch drive-letters

5
推荐指数
1
解决办法
6215
查看次数