【发布时间】:2019-07-18 18:46:21
【问题描述】:
我需要编写一个 Windows bat 程序来删除具有命名模式的特定文件夹 scoped_dir45666,scoped_dir45667 ...等等(例如)(包括内容) 与批处理程序。为此,我使用以下代码:
@echo off
Taskkill /IM chromedriver.exe /F
Taskkill /IM chrome.exe /F
cd /D %temp%
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
但它会删除 %temp% 下的所有内容导致系统问题...(我猜它也搞砸了一些 os 文件)
我需要删除我的用户的 %temp% 目录下所有以 scoped_dirxxxxx (scoped_dir*) 开头的目录名称,有人可以建议如何修改上述代码以仅删除 %temp% 文件夹中以 scoped_dir 开头的文件夹名称
【问题讨论】:
-
你说“它正在删除
%temp%下的所有东西”。好吧,因为你告诉它删除所有目录,除此之外你还在那个目录中执行del /f /q *.. -
您自己尝试过什么吗?当
*匹配所有目录时,您认为应该模式如何仅匹配以scoped_dir开头的文件?你试过scoped_dir*吗? -
请注意,不需要先
CD进入目录,使用@For /D %%A In ("%TEMP%\scoped_dir*") Do @RD /S/Q "%%A"即可。 -
感谢所有建议,我正在尝试在实际删除之前进行模拟。但是在 Do Echo @RD /S/Q "%%A " 中包括 echo ,cmd 正在闪烁并继续...我想在删除之前至少回显,所以我可以确定我要删除的内容..
-
@asp,使用
@For /D %%A In ("%TEMP%\scoped_dir*") Do @Echo(RD /S/Q "%%A",然后在其下方临时添加另一行@Pause,这将使窗口保持打开状态,直到您按照说明操作...
标签: windows batch-file temp