将参数传递给参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将参数传递给参数相关的知识,希望对你有一定的参考价值。
救命!!
所以我有一个查看文件名称的批处理文件,然后根据原始文件名将sumatrapdf.exe打印到打印机名称。打印机名称存储在参数中。当我回显打印机名称参数时它是正确的。当我将打印机名称参数传递给打印程序时,它会出错,假定它是因为它无法看到打印机名称参数。 (我想我需要传递另一组“%”,以便批处理文件知道它的参数。
FOR %%F IN (%C:Users
ickDesktopTest1%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
ickDesktopTest1\% filename%".pdf
Timeout /t 15
答案
变量扩展中有一个空格:% filename%
。删除空间。但这并不能解决你的逻辑问题。基本上你正在尝试进行双变量扩展。您可以使用CALL命令的巧妙技巧来完成此操作。
CALL Set "PrinterName=%%%filename%Printer%%"
使用CALL命令为您提供两个变量扩展阶段。当CALL命令执行时,代码行变为:
CALL Set "PrinterName=%Shelf-01Printer%"
然后执行SET
命令并将变量设置为适当的打印机名称。
以上是关于将参数传递给参数的主要内容,如果未能解决你的问题,请参考以下文章