我正在尝试运行一个简单的批处理文件:
@echo off <-- don't print this line or any of the preceeding lines to the console window.
pushd "K:\" <-- in the quoted directory
for %%j in (*) <-- for every file in the directory
do
if %%~zj <-- if the size of the file
lss 37000 <-- is less than 37k
del %%j <-- delete the file
popd <-- go back to original directory.
@echo off
我开始在and处收到错误pushd
,但如果我尝试pushd
in ,cmd.exe
它运行正常。我肯定我遗漏了一些简单的东西。
有任何想法吗?
答案1
当您使用程序启动批处理文件并且批处理文件没有cmd.exe /c
首先调用时,就会发生这种情况。没有pushd.exe
,它是 下的内置命令cmd.exe
。但是当您的程序调用批处理文件时,它会直接启动它 - 没有cmd.exe
。(是的,这很奇怪。)
解决方案:无论你从哪里运行它,在它前面加上cmd.exe /c
因此,如果您正在运行,deletelittlefiles.bat
请将其更改为cmd.exe /c deletelittlefiles.bat
。
来源:我是软件测试团队的实验室经理,我们的测试工具可以在但不必须在不启动的情况下运行cmd.exe
。