我正在尝试编写一个脚本,它将通过像:
这样的导演结构school/admission/english->index.html
它应该将index.html重命名为english.html,这是它的父文件夹,并将其向上移动一级,以便结果如下
school/admission/english.html
对于该文件夹结构中名称index.html
的所有文件,应重复此相同的过程。任何有关如何处理此问题的帮助将不胜感激。
要查找我拥有的所有index.html文件:
@echo off
for /r %%i in (index.html) do echo %%~ti %%~zi %%i
将.html文件向上移动一级:
for /r %x in (*.html) do move "%x" "%x"/../..
答案 0 :(得分:2)
这是一个相当简单的本机解决方案,可以从命令行运行
for /r %F in (index.html) do @for /f "eol=: delims=" %A in ("%F\..") do @if exist "%F" move "%F" "%F\..\..\%~nA%~xF"
编辑以回应评论中的其他问题
如果您只想处理文件夹层次结构的叶节点,我认为最好使用批处理脚本:
@echo off
for /r %%F in (index.html) do (
if exist "%%F" (
set "subFolder="
for /d %%A in ("%%~dpF\*") do set subFolder=1
if not defined subFolder for /f "eol=: delims=" %%A in ("%%F\..") do move "%%F" "%%F\..\..\%%~nA%%~xF"
)
)