0

在 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
)

想法?

4

1 回答 1

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 之前开始。然后要引用变量的值,您需要将变量括在 %

于 2012-10-03T20:27:49.400 回答