我正在使用此代码运行带有文本文件参数的批处理文件。但它只从输入文件中获取最后一个值。
@echo off
cd /d C:\Users\infodba\Desktop\Export
for /f "eol=; tokens=1,2 delims=," %%a in (Input.txt) do
(
set ITEMID=%%a
set REV=%%b
call :write %%a %%b
)
:write
echo ITEMID=%ITEMID%, REV=%REV%
cd /d C:\Program Files\Siemens\NX 8.5\UGMANAGER
ug_export -part=%ITEMID% -rev=%REV% -u=arvind -p=asfa@p -role=dba -export_dir=C:\Users\infodba\Desktop\Export
exit /B 0
答案 0 :(得分:1)
您需要在结束exit /B
之后添加)
命令,以便在主程序(:write
循环)完成后无意中落入for
子例程。<登记/>
(
正文的开头for
需要与do
关键字位于同一行。
在将ITEMID
和REV
传递到子程序时,无需设置%%a
和%%b
。
在:write
%1
内使用%2
访问第一个参数,@echo off
pushd "C:\Program Files\Siemens\NX 8.5\UGMANAGER"
for /f "usebackq eol=; tokens=1,2 delims=," %%a in (
"C:\Users\infodba\Desktop\Export\Input.txt"
) do (
call :write "%%~a" "%%~b"
)
popd
exit /B
:write
echo ITEMID="%~1", REV="%~2"
ug_export -part="%~1" -rev="%~2" -u=arvind -p=asfa@p -role=dba -export_dir=C:\Users\infodba\Desktop\Export
exit /B 0
访问第二个参数。
这应该有效:
ug_export
如果工具-part
不支持引用-rev
和ug_export -part=%~1 -rev=%~2 ...
个参数,请改为编写ug_export
。
我通过在主要部分中更改一次(使用:write
和pushd
),避免每次执行popd
时更改为目录路径@echo off
。
提示:对于调试,非常有助于暂时删除{{1}} ...