1
我使用DOS批处理使用传递的参数,其处理的文件:扩大任意可变的驱动器,路径等在DOS批处理
process.bat "D:\PROJECT\TEST FILES\test.pdf" 72
process.bat:
gswin32c -r%2 -sDEVICE=jpeg -sOutputFile="%~n1-%%d.jpg" -- "%~1"
我们可以看到该参数已扩展为批次中的文件名:%~n1
。 但是我被要求重写一批从文本文件中读取参数:
params.txt
1 D:\PROJECT\TEST FILES\test.pdf
2 72
所以我已经修改了process.bat:
for /f "tokens=1,*" %%A in ('type ..\params.txt') do set P%%A=%%B
gswin32c -r%P1% -sDEVICE=jpeg -sOutputFile="%~nP2%-%%d.jpg" -- "%~1"
但%〜nP2%不起作用。
我发现for /f "tokens=*" %%A in (%P1%) do %%~dA
可以帮助我,但看起来很麻烦。
那么有没有其他方法可以将任意变量扩展为名称,驱动器,路径等?
FWIW,我没有回头,因为我停笔批处理文件,并开始使用JavaScript和的Cscript.exe 。 – 2010-02-10 16:34:27
好的建议。会试试看。 – Max 2010-02-10 17:20:32
很高兴这是有帮助的。重新使用JavaScript:脚本很难运行('cscript/nologo myname.js'),但你可以解决这个问题。我通过为我的命令脚本使用扩展名“jx”来完成它。要进行设置,请右键单击这样的文件并告诉Windows使用'c:\ windows \ system32 \ cscript.exe'打开它。然后使用regedit通过转到HKCR \ jx_auto_file \ shell \ open \ command并将默认键值更改为'“c:\ WINDOWS \ system32 \ cscript.exe”来改变该类型的“打开”命令/ e:JavaScript/nologo“%1”'。快乐的编码。 :-) – 2010-02-11 10:32:22