如何在一个批次中 运行 多个 cmd 文件?
How do I run multiple cmd files within a batch?
我看过很多关于此类问题的帖子,但找不到适合我的示例的答案。
我需要的
在我的脚本中,我需要启动特定文件夹(不是我的脚本所在的位置)中的所有 .cmd 文件。在此文件夹中有 53 个 .cmd 文件执行不同类型的作业。
问题
我想要一个简短的命令,可以在一行或几行内打开所有文件,而不是有 53 行 start "c:\allcmdfiles\example-xxx-xx shortcut.cmd"
我正在尝试什么
因此,在 Whosebug 上的其他帖子中,我遇到了调用命令。我已经尝试了各种这些命令,但无法使其工作
for %%f in ("c:\allcmdfiles*.cmd")
do CALL %%f
Perhaps some practical info
Its gonna run on Windows Server 2008 R2 std, but I'm testing on W7
The files will variate with spaces in the name and dashes
我的问题
所以有谁知道我该如何解决这个问题?谢谢!
for /f "tokens=*" %%i in ('dir /b c:\allcmdfiles\*.cmd') do call c:\allcmdfiles\%%i
您错过了使用通配符列出文件的 dir
命令,我们使用 /b
(简短)因为我们只需要文件的名称
这在批处理文件中对我有用:
for %%f in ("c:\test\test*.cmd") do call "%%f"
或命令行上的等效项:
for %f in ("c:\test\test*.cmd") do call "%f"
我注意到,在使用 Kayasax 的变体时,您说的是第一个子脚本 运行s,然后父脚本退出。这表明子脚本正在使用 exit
命令。最好的解决方案是修复子脚本,但如果你不能这样做,你将不得不 运行 它在子 shell 中:
for %%f in ("c:\test\test*.cmd") do cmd /c "%%f"
我看过很多关于此类问题的帖子,但找不到适合我的示例的答案。
我需要的
在我的脚本中,我需要启动特定文件夹(不是我的脚本所在的位置)中的所有 .cmd 文件。在此文件夹中有 53 个 .cmd 文件执行不同类型的作业。
问题
我想要一个简短的命令,可以在一行或几行内打开所有文件,而不是有 53 行 start "c:\allcmdfiles\example-xxx-xx shortcut.cmd"
我正在尝试什么
因此,在 Whosebug 上的其他帖子中,我遇到了调用命令。我已经尝试了各种这些命令,但无法使其工作
for %%f in ("c:\allcmdfiles*.cmd")
do CALL %%f
Perhaps some practical info
Its gonna run on Windows Server 2008 R2 std, but I'm testing on W7
The files will variate with spaces in the name and dashes
我的问题
所以有谁知道我该如何解决这个问题?谢谢!
for /f "tokens=*" %%i in ('dir /b c:\allcmdfiles\*.cmd') do call c:\allcmdfiles\%%i
您错过了使用通配符列出文件的 dir
命令,我们使用 /b
(简短)因为我们只需要文件的名称
这在批处理文件中对我有用:
for %%f in ("c:\test\test*.cmd") do call "%%f"
或命令行上的等效项:
for %f in ("c:\test\test*.cmd") do call "%f"
我注意到,在使用 Kayasax 的变体时,您说的是第一个子脚本 运行s,然后父脚本退出。这表明子脚本正在使用 exit
命令。最好的解决方案是修复子脚本,但如果你不能这样做,你将不得不 运行 它在子 shell 中:
for %%f in ("c:\test\test*.cmd") do cmd /c "%%f"