繁体   English   中英

将参数传递给参数

[英]Passing a parameter into a parameter

救命!!

因此,我有一个批处理文件,该文件会查看文件名,然后根据原始文件名将sumatrapdf.exe打印到打印机名称。 打印机名称存储在参数中。 当我回显打印机名称参数时,它是正确的。 当我将打印机名称参数传递给打印程序时,它会出错,并假定是因为它看不到打印机名称参数。 (认为​​我以某种方式需要跨越另一组“%”,以便批处理文件知道其参数。

FOR %%F IN (%C:\Users\nick\Desktop\Test1%\Shelf*.csv) DO (
 set filename=%%~nF
 Set filename1=%%F
 goto tests
)
:tests
echo "%filename1%"
echo "%filename%"

Set "Shelf-01Printer=NPIBBF846 (HP Color LaserJet CP2025dn)"
Set "Shelf-07Printer=NPIBBF846 (HP Color LaserJet CP2025dn)"
Set "Shelf-97Printer=NPIBBF846 (HP Color LaserJet CP2025dn)"
Set "Hook-09Printer=HP LaserJet P2050 Series PCL6"
Set "PrinterName=%filename%Printer"
Echo %PrinterName%

Start SumatraPDF.exe -print-to %PrinterName% "C:\Users\nick\Desktop\Test1\% filename%".pdf
Timeout /t 15

变量扩展中有一个空格: % filename% 删除空间。 但这并不能解决您的逻辑。 本质上,您正在尝试进行双变量扩展。 您可以使用带有CALL命令的巧妙技巧来完成此操作。

CALL Set "PrinterName=%%%filename%Printer%%"

使用CALL命令可以为您提供变量扩展的两个阶段。 当CALL命令执行时,代码行变为:

CALL Set "PrinterName=%Shelf-01Printer%"

然后,执行SET命令并将变量设置为适当的打印机名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM