0

我正在尝试编写一个脚本,该脚本将通过如下导演结构:

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"/../..
4

1 回答 1

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"
  )
)
于 2012-09-20T04:20:00.363 回答