无忧启动论坛

标题: 请教精通批处理大侠:如何使用批处理获取特定卷标的盘符? [打印本页]

作者: 2013kyj    时间: 2020-5-28 08:52
标题: 请教精通批处理大侠:如何使用批处理获取特定卷标的盘符?
本帖最后由 2013kyj 于 2020-5-28 10:33 编辑

求助精通批处理的大侠,写段BAT代码,非常感谢!
描述:在我的电脑上有N块硬盘,有N个分区,其中有一个分区的卷标为SOFT,还有一个分区的卷标为BAK,想用批处理获取并回显这两个分区的盘符!
作者: 江南一根葱    时间: 2020-5-28 09:16


for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
vol %%a:|findstr BAK&&set bak=%%a
vol %%a:|findstr SOFT&&set soft=%%a
)
echo BAK所在盘符为%bak%:
echo SOFT所在盘符为%soft%:
pause
作者: 2013kyj    时间: 2020-5-28 10:02
江南一根葱 发表于 2020-5-28 09:16
for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
vol %%a:|findstr BAK&&set ...

感谢大侠帮忙,好像区分大小写,怎样不区分大小写识别?
作者: 江南一根葱    时间: 2020-5-28 10:09
2013kyj 发表于 2020-5-28 10:02
感谢大侠帮忙,好像区分大小写,怎样不区分大小写识别?

我的办法是写两份,大小写全写上
作者: 2013kyj    时间: 2020-5-28 10:12
江南一根葱 发表于 2020-5-28 10:09
我的办法是写两份,大小写全写上

  要有更简单的就更好了
作者: 江南一根葱    时间: 2020-5-28 10:17
本帖最后由 江南一根葱 于 2020-5-28 10:18 编辑
2013kyj 发表于 2020-5-28 10:12
要有更简单的就更好了

findstr后面加 /I貌似是忽略大小写的,可以试试


for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
vol %%a:|findstr /I bak&&set bak=%%a
vol %%a:|findstr /I soft&&set soft=%%a
)
echo BAK所在盘符为%bak%:
echo SOFT所在盘符为%soft%:
pause


作者: dehifir    时间: 2020-5-28 10:23
10年就在用这两个批处理,当时内存是8G的,先判断卷标,然后判断容量是不是大于8G,最后就把游戏解压到这个盘里面。现在记不住了代码了,要回去找找,自从用了P驱,就用不上这两个代码了。……
作者: 2013kyj    时间: 2020-5-28 10:25
江南一根葱 发表于 2020-5-28 10:17
findstr后面加 /I貌似是忽略大小写的,可以试试

确实,非常感谢帮忙,完美搞定
作者: 2013kyj    时间: 2020-5-28 15:40
江南一根葱 发表于 2020-5-28 10:09
我的办法是写两份,大小写全写上

貌似不太准确,只要卷标中包含win和efi就被识别了,比如,卷标为win7也被识别了,只我只需要识别win
作者: szwp    时间: 2020-5-28 15:50
2013kyj 发表于 2020-5-28 15:40
貌似不太准确,只要卷标中包含win和efi就被识别了,比如,卷标为win7也被识别了,只我只需要识别win

再加 /e参数试下
作者: 2013kyj    时间: 2020-5-28 17:26
szwp 发表于 2020-5-28 15:50
再加 /e参数试下

多谢,测试成功!




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3