批处理脚本回显可用驱动器错误

时间:2019-11-18 17:03:57

标签: batch-file scripting

我遇到一个非常奇怪的问题,我想打印出笔记本电脑上连接的可用USB驱动器,但是当我尝试这样做时,这就是命令行中出现的内容。

enter image description here

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

这是我的脚本编程新手,有人可以帮助我解决问题或改进代码,因为我不知道这是执行此操作的最佳方法。

1 个答案:

答案 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%