spa*_*sen 10 string batch-file command-line-arguments
编辑:下面的代码没有错.错误来自其他地方.
命令变量是我想要执行的命令.name变量正在提取计算机名称列表.当我回声!命令!它返回我想要使用的值.那应该运行删除所有机器所需的命令,但是,当我实际运行!命令!或%命令%,未添加名称变量,它失败.
d:
cd "Program Files\admin"
setlocal EnableDelayedExpansion
SET string=%
for /f "tokens=*" %%a in (oldMachines.txt) do (
set name=%%a
set command=sbadmcl.exe AdminUser:admin -AdminPwd:password -Command:DeleteMachine -Machine:!name!
REM echo !name!
REM echo !command!
REM !command!
%command%
)
pause
Run Code Online (Sandbox Code Playgroud)
dbe*_*ham 10
%command% 因为它在分析时扩展,所以扩展的值是循环执行之前的命令值.
我不知道为什么!command!不起作用.通常,在变量中执行代码时,您希望使用正常扩展而不是延迟扩展,因为延迟扩展会限制您可以执行的某些操作.它与CMD解析器的工作方式有关.但是我没有在你的命令中看到任何应该导致延迟扩展问题的内容.
尝试 call %%command%%
| 归档时间: |
|
| 查看次数: |
18962 次 |
| 最近记录: |