在运行时将输入提供给/ set \ package

时间:2017-09-07 18:12:53

标签: batch-file

在批处理文件中,我已将硬编码的dB名称替换为我正在从文件中读取的参数。当我从本地运行批处理文件时,我可以看到dB名称被正确替换。但是,当我尝试在WLM上运行相同的脚本时,作业将被中止而不会触发底层包本身。

从文件中读取的代码:

for /f "delims== tokens=2" %%G in (file_name.txt) do set %%dB_name=%%H

我在批处理文件中使用DTEXEC,参数传递给/set \"package[variable]";dB_name

1 个答案:

答案 0 :(得分:0)

使用file_name.txt

ABC=DEF
GHI=JKI

您的批次行,我发现以下变量已设置:

%dB_name=%H

我怀疑那不是你真正想要的。通常,您不希望百分号 中的变量名。

此外,当您指定令牌#2时,这是您指定的唯一令牌,因此我怀疑您的目标应该是%%G而不是%%H

也许这样的事情会更好:

for /f "delims== tokens=2" %%G in (file_name.txt) do set dB_name=%%G

此外,我再也不记得为什么,但我很喜欢将delims放在最后:

for /f "tokens=2 delims==" %%G in (file_name.txt) do set dB_name=%%G

在任何方面,我这样做的结果是,使用相同的输入文件:

dB_name=JKI

这看起来更像是你正在努力完成的事情。