[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 WHY 于 2019-7-7 19:55 编辑

回复 9# tjx_nj


    解释的不太靠谱,脚本也是错误的。

for + WMIC 命令获取的变量值 %%a 结尾有一个不可见的特殊字符(0x0D,\r,vbCr),也就是“回车符”。
因为 %%a 包含了特殊字符,使得 %%a\file1 这个路径非法,if exist 语句条件不成立,变量 UFD 始终不会被赋值。

要验证这个特殊字符是否存在,只需要运行一下:
  1. 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 变量扩展,去掉非法字符:
  1. for /F "usebackq tokens=2 delims==" %%a in (`wmic LogicalDisk where "DriveType='2'" get DeviceID /Value`) do (IF EXIST %%~da\file1 set UFD=%%~da)
  2. echo;%UFD%
复制代码

TOP

返回列表