我正在尝试将以下命令行嵌入到VBA中:
for /f "skip=10 delims=" %%A in ('dir /a:-d /b /o:-d /t:c *.log ^2^>nul') do if exist "%%~fA" del "%%~fA
我尝试的是:
Set objShell = CreateObject("WScript.Shell")
cmdLine = "cmd /k for /f ""skip=2 delims="" %%A in ('dir /a:-d /b /o:-d /t:c *.xls ^2^>nul') do if exist ""%%~fA"" del ""%%~fA"""
retVal = objShell.Run(cmdLine, 1, True)
它不起作用。
但是,如果我将代码保存为.cmd
,则可以正常工作。
答案 0 :(得分:1)
最后,我发现了这个问题。这不是单引号。
您只需将%%A
更改为%A
即可。但是,如果您将代码保存在.bat
/ .cmd
中,则%%A
可以使用。
处理命令行非常挑剔。