糟糕的程序在每个子目录中留下了几个“.data”隐藏文件夹。
到目前为止,我已经尝试了这个,但是它不起作用......
RD /ah /s /q "D:\This Folder\.data"
我有很多文件夹和子文件夹,每个文件夹都有一个“.data”隐藏文件夹,我想删除它。如果有帮助,我想删除所有隐藏文件夹,因为它们都是“.data”。
答案 0 :(得分:4)
@echo off
setlocal enableextensions disabledelayedexpansion
for /f "delims= eol=" %%a in ('
dir /adh /s /b 2^>nul
') do if /i "%%~nxa"==".data" echo rd /s /q "%%~fa"
这将执行dir
命令以裸格式(/s
)检索隐藏目录(/ahd
)的递归(/b
)列表。此列表由for /f
命令处理,如果它是.data
文件夹,将检查每个匹配项。如果它与条件匹配,则删除文件夹及其内容。
note rd
命令仅回显给控制台。如果输出正确,请删除echo
命令。
答案 1 :(得分:1)
@ECHO OFF
for /f "tokens=*" %%F in ('dir /s /b /o:n /adh') do (
if "%%~nxF"==".data" rd /s /q "%%F"
)
dir /s /b /o:n /adh
为您提供跳过文件的所有文件夹和子文件夹。 for /f
遍历所有这些文件夹。 %%~nxF
从整个路径中提取最后一个文件夹名称,以便我们检查它是否为.data
。如果是这种情况rd /s /q %%F
删除文件夹。
答案 2 :(得分:0)
读取键入/时的内容?然后:
使用/ d
FOR /D %variable IN (set) DO command [command-parameters]
If set contains wildcards, then specifies to match against directory
names instead of file names.
和/ r一起切换
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.
以递归方式扫描文件夹
for /d /r . %%a in (data*) do rd /s /q "%%a"