您没有指定问题。然而:
'1'。 delims==语法
for /F "tokens=2 delims==" %%A in ('wmic logicaldisk get providername /value') do @echo %%A
上述命令的输出是否正确?我不敢说,因为
'2'。 wmic 的所有输出都是 Unicode。要转换为 ASCII,请尝试下一个代码 sn-p:
wmic logicaldisk get providername /value >somename.txt
for /F "tokens=2 delims==" %%A in ('type somename.txt') do @echo %%A
'3'。结果到变量:
set "file="
rem variable initialized now
rem ... some code ...
for /F "tokens=2 delims==" %%A in ('type somename.txt') do set file=!file! %%A
rem ... some code ...
echo !file!
echo %file%
也可以是set "file=!file! %%A"
整批:
@ECHO OFF >NUL
@SETLOCAL enableextensions enabledelayedexpansion
set "drive_paths_Wmic="
rem variable initialized now
rem ... some code ...
wmic logicaldisk get providername /value >somename.txt
for /F "tokens=2 delims==" %%A in ('type somename.txt') do (
set drive_paths_Wmic=!drive_paths_Wmic! %%A
@rem ... some code ...
)
echo !drive_paths_Wmic!
echo %drive_paths_Wmic%
Endlocal
goto :eof
输出(在我的电脑上):
C:\bat>fivmic
\\pc1870a\ttemp \\PC1870A\Install
\\pc1870a\ttemp \\PC1870A\Install
输出(与echo ON 部分)
C:\bat>fivmic
C:\bat>wmic logicaldisk get providername /value 1>somename.txt
C:\bat>for /F "tokens=2 delims==" %A in ('type somename.txt') do set drive_paths_Wmic=!drive_paths_Wmic! %A
C:\bat>set drive_paths_Wmic=!drive_paths_Wmic! \\pc1870a\ttemp
C:\bat>set drive_paths_Wmic=!drive_paths_Wmic! \\PC1870A\Install
C:\bat>rem ... some code ...
C:\bat>echo !drive_paths_Wmic!
\\pc1870a\ttemp \\PC1870A\Install
C:\bat>echo \\pc1870a\ttemp \\PC1870A\Install
\\pc1870a\ttemp \\PC1870A\Install
如果%file% 变量包含有效的文件名,那么您可以将回显重定向到该文件,例如echo bubu >> anyname.txt 将文本 bubu(在新行上)附加到文件 anyname.txt。在您的脚本中:
set file="anyname.txt"
echo %drive_paths_Wmic% >> %file%