批处理文件使用先前执行的参数

时间:2016-09-01 08:54:26

标签: windows batch-file arguments parameter-passing

我在批处理脚本上非常业余,试图编写一个批处理文件来加速我的工作。 但是每次运行这个批处理文件时,它都会使用先前执行的参数(而不是使用当前参数)

我可以使用以下行重复错误。

REM source code begin
@echo off

set aim=%1

if "%aim%"=="download" (
    set taskShortName=%2
    set action=%3
    echo %taskShortName%
    echo %action%
    echo download things
)
REM source code end

the output is:
C:\Users\Charles>dbg_arg.bat download 20160901 init
20160901
init
download things
C:\Users\Charles>dbg_arg.bat download 20160901 init
20160901
init
download things
C:\Users\Charles>dbg_arg.bat download 20160901 resume
20160901
init <----- ERROR
download things
C:\Users\Charles>dbg_arg.bat download 20160901 resume
20160901
resume
download things
C:\Users\Charles>

有任何解决此问题的建议吗?

1 个答案:

答案 0 :(得分:0)

正如aschipfl所说,你需要延迟扩张。这意味着您必须在代码开头的行arrangeGrob()+grid.draw()和if-block中已更改的地址变量setlocal EnableDelayedExpansion而不是!var!

试试这个:

%var%