批量USB字母执行命令

我有和批处理脚本执行命令删除几个分机。 例:

set /p drive=Choose the letter of usb: if %drive%== E goto E 

例子(如果你selectE)

 E: del /f /q E:\*.lnk *.inf *.init 

但是只能删除第一个(* .lnk)。 其余的redirect到驱动器C(我执行批处理)例如:

 Can't find C:\*.inf 

我不想这样做:

 del /f /q E:\*.lnk del /f /q E:\*.inf del /f /q E:\*.init 

如何解决它? 谢谢

你可以很快的解决这个问题,就像前面的其他扩展名一样:

 del /f /q E:\*.lnk E:\*.inf E:\*.init 

真的,而不是手动为每个驱动器创build一个块,你可以使用你的variables在这里为你做的工作:

 set /p drive=Choose the letter of usb: del /f /q %drive%:\*.lnk %drive%:\*.inf %drive%:\*.init 

塔兹,我会借用你的答案来展示完整的例子。

 :TOP set /p drive=Choose the letter of usb: If "%drive%" EQU "" Goto :TOP Set drive=%drive:~0,1% del /f/q/s/a %drive%:\*.lnk %drive%:\*.inf %drive%:\*.init 

只接受input的第一个字符并检查没有input。

/s将从给定的path开始对所有子文件夹中的文件执行检查。 /a将删除所有文件,即使它们被隐藏。 不是100%确定只读文件虽然…

引号"不用于参数,因为唯一的用户提供的数据是单个字母,并且在预先写入的参数中没有空格。