我有一个由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
答案 0 :(得分:0)
是的,使用重定向。
拿这个solution.bat文件
set /p myvar=< somestring.txt
somestring.txt包含“abc”
myvar现在将作为环境变量与abc。
一起存在答案 1 :(得分: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