将命令行中的变量嵌入到VBA中

时间:2016-06-07 18:08:51

标签: vba excel-vba batch-file command-line excel

我正在尝试将以下命令行嵌入到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,则可以正常工作。

1 个答案:

答案 0 :(得分:1)

最后,我发现了这个问题。这不是单引号。

您只需将%%A更改为%A即可。但是,如果您将代码保存在.bat / .cmd中,则%%A可以使用。

处理命令行非常挑剔。