如何用批处理删除所有逻辑分区的某个文件?

如何用批处理删除所有逻辑分区的某个文件?比如我想删除所有分区下名为1.txt的文件,请问该如何写?真的把我难住了!谢谢各位高手啦!

@echo off
set pan=C D E F G H I J K L M N O P Q R S T U V W X Y Z
for %%a in (%pan%) do del /s/f/q "%%~a:\1.txt"
pause

追问

%%~a是什么意思啊

上面的问题懂了,不过该如何排除掉光驱?我只需要删掉逻辑分区里的东西

追答

上面设定的盘符,保留你需要的。

追问

刚才试了一次,没有成功啊

追答

把你改的代码贴出来。

追问

追答

晕,,设置变量名,你加什么空格啊!

追问

只能一个一个设置吗?

追答

你仔细看看我写的变量名等于号左右有没有空格。

追问

我还以为空格没事呢😂成功了,谢谢啦!

追答

批处理对代码中的空格是很敏感的。

追问

那有没有什么办法让它自己判断是不是逻辑分区吗?我想让这个批处理在任何电脑上都能使用

追答

可以。

追问

能教教我吗?谢谢了!今天思考了一天,不如你一句话啊

追答@echo off
for /f "tokens=1 delims= " %%a in ('wmic logicaldisk where "drivetype=3" get name ^| find /i ":"') do del /f /q /s "%%~a\1.txt"
pause

追问

下午研究了好久wmic,没理解。我看看你写的

抱歉,能再帮我看看我写的代码吗?

我后边的那个是想遍历一个分区的所有文件夹,然后将文件夹下与文件夹同名的lnk删除。但是我这样子却只在d盘里循环,为什么啊?

追答

你要删除lnk文件,有必要多写一次for吗?

追问

你有更好的办法吗?我现在只能想到这样了

追答

晕,那刚刚第一次写给你的代码,又有何意义?

追问

因为我可以遍历一个分区了,但我不知道该怎么样找多个分区。就想到这样嵌套了

只是用了一个简单的问题问了下,只是想知道个思路。但发现这样还是不行😂

我这样写为什么会循环啊?为什么不往D盘走?

追答

晕啊!

我第一次写的代码就是从设定好的盘符中删除你要删除的文件啊!
都是循环对每个设定的盘符进行删除的,你偏偏还要按自己的想法来写,真是的!
把1.txt改成*.lnk不就得了。

如果让脚本自行获取不确定的盘符,那就用我第二次写的代码,同样把1.txt改成*.lnk不就得了。

你这样按自己的意思写,搞得我写的代码对你就没任何意义了!

追问

没有没有,你给我的思路很有用。但我不知道如何嵌套,现在解决了,我现在才知道单引号里面得用双引号才行。

我不是把所有lnk都删掉,只把与文件名相同的lnk删掉,所以得进行下判断。无论如何谢谢你了!!

追答

你要套现干嘛?

你不就要删除lnk吗?直接原原本本的拿过去用不就行了。

追问

直接删除lnk就不用这么麻烦了,我主要得选项性的删除

追答

删除同文件夹名字相同的lnk文件?

我看你写的代码是只删除文件夹同名的快捷方式。

而且你没指定搜索盘符,你的代码只对脚本目录下进行搜索。那么肯定会无法删除其它盘的。

追问

我现在就差一个思路,我不喜欢让别人帮我解决问题。谢谢你给了我这个思路,我已经写出来了。多谢了!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-10
删除某一特征的文件夹和内部所有文件的命令怎么写?
比喻: 所有带2345的文件夹和文件夹内文件,怎么写?
相似回答