簡體   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