Articles of batch file

如何使用批处理脚本对目录中的每个文件执行多个操作

这是这个问题的直接延伸: 如何使用批处理脚本对目录中的每个文件执行某些操作 从上面我倾斜了如何执行文件夹中的每个文件的命令。 你如何为每个文件执行MULTIPLE命令? 我想首先使用lame压缩文件,然后将原始文件移动到不同的目录 这是我迄今为止: FOR /r cutAndPendingCompression %%f IN (*.*) DO lame %%f compressed\%%~nf -mm -b 16 –vbr-new -V 9 –scale 2.5

为什么Cygwin可以运行.bat脚本?

当我在Cygwin中从bash执行.bat脚本时,它运行的是什么机制? 我知道,如果我运行.EXE它将启动,无论.exe是来自Cygwin还是来自更传统的环境。 我明白,当我用#执行可执行脚本! Cygwin一开始就提供了运行的魔力。 但为什么一个.bat脚本工作? Cygwin中是否有一些组件知道Windows .bat脚本是什么以及如何处理它? 还是在Windows下执行一个调用来启动一个不会自动为.bat脚本工作的.EXE文件呢?

在Windows 10 cmd中切换不同的Python版本

我不喜欢另一个post 。 因为它涉及重命名python可执行文件。

Windowsbatch file使用date/时间将输出redirect到日志文件

我想运行一个batch file运行一个可执行文件,并将其输出redirect到一个日志文件。 日志文件必须包含date和时间作为文件名。 这是我正在使用的命令: "%PROGRAMFILES%\PostgreSQL\9.4\bin\vacuumdb.exe" –username postgres –verbose –analyze –all > E:\Logs\VacuumDB\%date:~10,4%_%date:~4,2%_%date:~7,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%.log 2>&1 这个命令直接在cmd中粘贴。 日志文件按预期创build为“2015_06_25__11_20_46.log”。 但是,它在粘贴到batch file时不起作用,然后在cmd中运行。 命令解释如下: "C:\Program Files\PostgreSQL\9.4\bin\vacuumdb.exe" –username postgres –verbose –analyze –all 8_21_42.log 1>E:\Logs\VacuumDB\2015_06_26_ 2>&1 请注意,文件名是如何截断的,时间现在被附加到命令参数中,而不是在文件名中。 所以显然这个命令失败了。 这当然是非常简单的,但我还没有find任何解决方法。 任何帮助是极大的赞赏。 谢谢!

如何编写批量脚本将一个目录复制到另一个目录,replace旧文件?

我想在Windows中的批处理脚本,我可以复制一个目录到另一个。 如果这个目录已经存在,那么对于每一个已经存在的文件都有相同的名字和位置,应该被覆盖,如果不存在,就应该加上。 最后,它应该是一个批处理脚本,我可以传递2个参数,源和目标。

使用命令行禁用以太网连接?

我已经看到许多“禁用无线命令行”的职位,但不是关于禁用以太网。 是否有可能这样做(在Windows 7,32和64位)?

获取一个DLL或EXE的文件版本

可能重复: 转储Windows DLL版本的命令行工具? 如何从Windows Vista上的batch file中检索文件的版本? 是否有可能获得使用批处理命令的DLL或EXE文件的文件版本,并将其存储在一个variables?

计划任务调用的batch file在计划时抛出错误,双击时运行正常

我有一个映射networking驱动器的batch file。 大约一个星期前密码过期,所以调用batch file的程序开始抛出错误。 我更新了batch file中的密码,当我双击batch file时,驱动器映射正常。 但是,当计划任务启动时,出现以下错误: Logon failure: unknown user name or bad password. 任何人见过这个? 我已经尝试重新创build计划任务,但似乎没有任何区别。 编辑 我已经更新了计划任务的属性,这不是问题。 问题似乎是batch file中的用户名和密码。 奇怪的是,如果我以交互方式login并双击可执行文件,一切正常。 上次运行的时候,它抛出了一个“信号量超时期已过期”的错误。 我从来没有见过这个特定的错误,但它似乎是实际login,并试图复制文件,当发生这种情况。 编辑 我已经修改了我的代码,使其尽可能简单。 我正在使用batch file来映射驱动器,然后使用代码来传输文件。 我仍然遇到同样的问题 – 当我双击batch file,它工作正常,但是一旦我把调度器放入图片,它会抛出一个“错误的用户名或无效的密码”错误。 偶尔当我试图通过双击运行该文件,我得到一个“找不到path的一部分”的错误。 这对我说驱动器映射实际上工作,但是当它试图复制时失败。 (大多数情况下,双击testing可以正常工作)

windows批处理命令来确定进程的工作目录

为什么我要问的是,我的程序使用第三方软件,有时会留下孤立进程没有链接回到我的程序或第三方进程。 这些孤立的进程开始累积起来,随着时间的推移消耗大量的资源。 我想定期杀掉它们,但为了让我这样做,我必须确定它们是由我的程序创build的,而不是其他程序。 我查看了Process Explorer中的孤立进程,并在查看进程属性时看到一个名为“Current Directory”的字段。 孤立进程的当前目录是我的程序的安装目录。 这会让我放心,我正在杀死我的程序创build的过程。 由于这些进程是由第三方创build的,我只需要通过在其上运行taskkill创build它们就可以杀死它们。 有没有办法在batch file中使用开箱即用的Windows命令找出进程的当前工作目录? 如果这可以通过wmic查询,这将是可取的,但我似乎无法find当前工作目录,当使用wmic。 我假设如果Process Explorer能够获得这个信息,我应该能够通过一些批处理命令得到它。

以毫秒为单位打印批处理时间

我知道,可以使用@ @echo %time%打印批处理时间达到厘秒。 有没有类似的命令来获得毫秒?