我有一个包含一组目录的文件夹。
我想迭代这个根文件夹中的所有目录,如果这些目录包含文件夹,则将它们展平(即将它们全部放入原始目录中,除非该文件夹名为“exception”。
所以我有
>Root Folder
>directory
>subdirectory
file1
>subdirectory2
file2
>directory2
>exception
file3
>directory3
>subdirectory3
file4
更改为(空行表示子目录的删除位置):
根文件夹 目录
file1
file2
>directory2
>exception
file3
>directory3
file4
每个子目录可以包含n个其他子目录,因此我认为这是一个最好的递归解决方案,例如:
for each directory d in root folder
find every file/folder in d not isCalled("exception")
copy all files into directory d
delete all folders in directory d
我不确定哪些技术可以在Windows中实现这一点,但是,任何人都可以提供帮助吗?我怎样才能编写最简单的脚本?我已经谷歌搜索了没有明确的答案,所以任何帮助都非常感激:)
感谢。
答案 0 :(得分:1)
我相信你要找的是Windows批次。
解决方案(未经测试):
@echo off
for /d %%a in (*) do (
Clear "%%~a"
rmdir %%a
)
@echo off
set root=C:\Path\To\Root\
:: Edit above line. Make sure you include last "\"
cd %1
move * %root%
for /d %%d in (*) do (
if "%%d" NEQ "exemption" (
%root%clear "%%~d"
rmdir %%d
)
)
这应该有效。将两个文件放在根目录中。如果clear
批处理文件中存在错误,则应该是安全的,因为rmdir
不会清除空目录。