0

我有一个由下面 6 个不同的 bat 脚本共享的代码,它接受一个输入参数。我想知道我是否可以在单独的 bat 脚本中将这段代码外部化并导入它,所以每次更新这段代码时,我都不必更新所有 6 个 bat 脚本。

代码:

:Loop
IF "%1"=="" GOTO Prompt
  SET VAR=%1
  GOTO Continue
SHIFT
GOTO Loop
:Prompt
  set /p VAR="Check which value? "
  GOTO Continue
:Continue
4

2 回答 2

0

您的代码应该将 VAR 设置为第一个参数。如果第一个 arg 缺失,那么您想提示输入一个值。

首先,我会简化你的逻辑。

set "VAR=%~1"
if not defined VAR set /p "VAR=Check which value? "

一旦像上面那样简化,我不明白为什么你会觉得需要外部化代码。但这是可以做到的。

在你的主脚本中

call getArg.bat %1

这是getArg.bat

set "VAR=%~1"
if not defined VAR set /p "VAR=Check which value? "
exit /b
于 2012-12-04T23:28:33.310 回答
0

是的,使用重定向。

拿这个 solution.bat 文件

    set /p myvar=< somestring.txt

其中 somestring.txt 包含“abc”

myvar 现在将作为环境变量与 abc 一起存在。

于 2012-12-04T22:33:18.407 回答