在Windows 7上创建批处理实用程序脚本以调用可执行文件。它基本上有效,除了我的第二个IF声明。尝试了许多不同的事情。
我的意图是为每个命令行参数调用'DoSomething'。那部分有效! 仅当命令行上没有给出参数时,第二个IF语句才会打印帮助消息。嗯,这就是意图。这不是它正在做的事情。
@ECHO OFF
:Start
SET a_file_was_processed="false"
IF "%1" NEQ "" (
SET a_file_was_processed="true"
ECHO Extracting table %1 from database.
DoSomething word%1 > output_%1.txt
ECHO Finished extract table to file output_%1.txt
SHIFT
GOTO Start
)
if a_file_was_processed NEQ "true" (
ECHO Invoke this script as: Extract_From_sdf table_name1 table_name2
)
想法?
答案 0 :(得分:1)
尝试了这些变化,似乎按预期工作
@ECHO OFF
SET a_file_was_processed="false"
:Start
IF "%1" NEQ "" (
SET a_file_was_processed="true"
ECHO Extracting table %1 from database.
rem --- DoSomething word%1 > output_%1.txt
ECHO Finished extract table to file output_%1.txt
SHIFT
GOTO Start
)
if %a_file_was_processed% NEQ "true" (
ECHO Invoke this script as: Extract_From_sdf table_name1 table_name2
)
第一个明显的错误是标签:在设置为false之前启动。 然后引用需要将变量括在%
中的变量的值