我遇到一个非常奇怪的问题,我想打印出笔记本电脑上连接的可用USB驱动器,但是当我尝试这样做时,这就是命令行中出现的内容。
for /f "delims=" %%a in ('wmic logicaldisk where drivetype^=2 get deviceid ^| find ":"') do set "List=!List!%%a"
:usb
echo Avaiable Drive ==^> !List!
set /p "Drive=Enter the letter of the Backup drive : "
echo !List! | find /i "%Drive::=%:" && Echo drive OK || Echo drive do not exist && goto:usb
这是我的脚本编程新手,有人可以帮助我解决问题或改进代码,因为我不知道这是执行此操作的最佳方法。
答案 0 :(得分:0)
您的问题是丑陋的wmic
行尾,其中包括一个额外的CR
(回车符)。消除它的方法有很多,但是在您的情况下,只需使用delims=:
就能达到目的(并删除冒号,这对于以下情况是个好主意)。
让我建议用户输入的另一种方式(使用choice
,从而无需重新检查驱动器)
@echo off
setlocal enabledelayedexpansion
set "list= "
for /f "delims=:" %%a in ('wmic logicaldisk where drivetype^=2 get deviceid ^| find ":"') do set "List=!List!%%a"
choice /m "Enter the letter of the Backup drive : " /c %list%
set drive=!list:~%errorlevel%,1!:
echo Drive is %drive%