我获得的打印机device ID
并将其分配给变量printerPort
for /f "tokens=* skip=1" %%a in ('wmic path Win32_SerialPort get DeviceID') do set printerPort=%%a
echo %printerPort%
输出:
set printerPort=COM1
set printerPort=
echo
如何在变量printerPort
中获取设备ID COM1 ?
答案 0 :(得分:1)
您的问题有两个提及,第一个是您提供的输出与您的代码输出的输出不匹配。第二个是WMIC输出带有非标准换行/回车序列,最有效的方法是通过另一个循环传递结果。
要么像这样:
@Echo Off
For /F "Skip=1Delims=" %%A In ('WMIC Path Win32_SerialPort Get DeviceID'
) Do For /F "Tokens=*" %%B In ("%%A") Do Set "printerPort=%%B"
Echo %printerPort%
或者有时,(在这种情况下),如下所示:
@Echo Off
For /F "Skip=1Delims=" %%A In ('WMIC Path Win32_SerialPort Get DeviceID'
) Do For %%B In (%%A) Do Set "printerPort=%%B"
Echo %printerPort%
答案 1 :(得分:0)
输出只是批处理文件中的命令被回显。你可以看到循环运行两次。你需要在第一行之后出来:
for /f "tokens=* skip=1" %%a in ('wmic path Win32_SerialPort get DeviceID') do (
set printerPort=%%a
goto exit1
)
:exit1
echo %printerPort%