保存命令!有这样一个批处理文件:
echo OFF
SetLocal EnableDelayedExpansion
echo %1
echo -
set "tailA="
for %%A in (%*) do (
if %tailA% EQU 1 echo %%A
set tailA=1
)
任务是绕过传递给脚本的所有参数,除了第一个参数,并为每个参数执行某个命令,这里举个例子,只是 echo。因此,在启动时会出现错误:
意外出现:1。
保存命令!有这样一个批处理文件:
echo OFF
SetLocal EnableDelayedExpansion
echo %1
echo -
set "tailA="
for %%A in (%*) do (
if %tailA% EQU 1 echo %%A
set tailA=1
)
任务是绕过传递给脚本的所有参数,除了第一个参数,并为每个参数执行某个命令,这里举个例子,只是 echo。因此,在启动时会出现错误:
意外出现:1。
第一个问题是替换后
%tailA%
,条件if
扩展为:也就是说,声明
set "tailA="
从字面上设置了一个空变量,它是空的%tailA%
!因此,CMD 解释器无法解析这样的表达式并诚实地报告它。echo OFF
如果在脚本一开始就删除这些问题,就会立即看到这些问题。第二个问题是重新分配
tailA
在我的系统(Windows 10)上并没有真正起作用。发生这种情况是因为没有包含扩展名EnableDelayedExpansion
,但是因为禁止扩展名,所以没有包含!还有一个允许扩展的键EnableExtensions
。简而言之,工作脚本: