本帖最后由 WHY 于 2019-7-7 19:55 编辑
回复 9# tjx_nj
解释的不太靠谱,脚本也是错误的。
for + WMIC 命令获取的变量值 %%a 结尾有一个不可见的特殊字符(0x0D,\r,vbCr),也就是“回车符”。
因为 %%a 包含了特殊字符,使得 %%a\file1 这个路径非法,if exist 语句条件不成立,变量 UFD 始终不会被赋值。
要验证这个特殊字符是否存在,只需要运行一下:- for /F "usebackq tokens=2 delims==" %%a in (`wmic LogicalDisk get DeviceID /Value`) do (echo;[%%a]>>D:\1.txt)
复制代码 然后用任意一款16进制文本编辑软件打开 D:\1.txt 查看即可。
2楼给出的方案可以满足你的要求,但你没有认真看,过早地被你忽略了。
还有一种办法,用 %%~da 变量扩展,去掉非法字符:- for /F "usebackq tokens=2 delims==" %%a in (`wmic LogicalDisk where "DriveType='2'" get DeviceID /Value`) do (IF EXIST %%~da\file1 set UFD=%%~da)
- echo;%UFD%
复制代码
|