如何避免在CMD中解释字符串作为命令?



我有代码获取PNPDeviceID的视频卡当前安装在系统

FOR /F %i IN ('wmic path win32_VideoController get PNPdeviceid ^| findstr _') DO (SET fd="%i")

echo %fd%

C:Usersuser>echo %fd:~1,-1%
PCIVEN_10DE
"DEV_0641" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"SUBSYS_00000000" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Системе не удается найти указанный путь.
"1A8B4BFC" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"0" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"0008" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

当我尝试显示fd变量CMD的值时,将变量的值解释为命令的chan并尝试执行它。我能避免吗?因为我只需要存储这个变量的一部分,但是当我尝试这样做时,我收到错误消息。我理解CMD看到&标记并尝试将其解释为命令操作符

echo "%fd%"代替echo %fd%。双引号可以防止cmd.exe将&解释为命令链字符。

最新更新