【发布时间】:2015-05-22 19:48:15
【问题描述】:
我似乎无法弄清楚为什么这不起作用。我正在尝试收集机器上所有打印机的列表,然后让脚本为每台打印机创建一个文件并将主机名附加到该文件。我计划在每台计算机上运行此程序,以便我们知道哪些计算机需要在我们正在设置的新 Windows 打印服务器的每个打印组中。
代码:
setlocal EnableDelayedExpansion
net use z: PATH TO SHARE HERE (this part works)
for /f "tokens=* USEBACKQ" %%1 in (`wmic printer get name`) do (
set str=''
echo %str%
set str=%%1
set str=!str:\==!
set str=!str: =!
echo !str!
echo "!str!.txt" >> test6.txt
hostname
hostname >> "!str!.txt"
)
两行
set str=!str:\==!
set str=!str: =!
是去掉空格,并替换开头的\ 打印机名称,因此它将是有效的文件路径。这些似乎按预期工作。
循环第一次运行的输出(其余与其他打印机名称相同并具有相同的行为)
ECHO 已开启。
WebExDocumentLoader
WW7L7NPWWZ1
文件名、目录名或卷标语法不正确。
上的回声是为空的回声!str!变量
下一行是变量中的打印机名称
该变量行的文件 test6.txt 的输出是:“WebExDocumentLoader.txt”
主机名行按预期输出。
最后一行让我发疯,因为我不明白为什么“WebExDocumentLoader.txt”应该是文件名时给出的语法无效。
我完全不知道为什么这不起作用:(
【问题讨论】:
标签: batch-file printing