繁体   English   中英

将子目录中的pdf文件重命名为子目录的名称

[英]Rename the pdf file inside sub-directories to the name of the sub directory

我正在使用Win 7平台。 需要您的帮助来创建一个bat文件,从而简化我的工作。 我的文件夹和文件以这种结构排列。

文件1

  • folder1-> abcd.pdf
  • folder2-> shhd.pdf .....................文件夹N-> gfdfgd.pdf

文件2

  • folder1-> gbg.pdf
  • folder2-> kjc67z.pdf .....................文件夹N-> iuxz4i.pdf

-

-

-

FileN

  • folder1-> ah455.pdf
  • folder2-> jfhd45.pdf .....................文件夹N-> juvxzr.pdf

我想生成一个批处理文件,将pdf文件重命名为它包含的文件夹的名称。 例如,在上述结构中,“ abcd.pdf”被重命名为folder1.pdf。 分别对所有pdf文件执行此操作。

在每个目录(file1,file2..etc)中还会创建一个名为“ test”的文件夹,其中包含其各自目录的所有重命名的pdf文件。

如果我复制内部文件1的所有文件夹MyFolder文件和运行批处理文件,文件夹命名为测试将被创建,所有的PDF文件将被重新命名并复制到测试文件夹中。

但是我想要的是,我想在H:\\驱动器中运行bat文件。 假设H:\\驱动器包含所有目录File1,File2 .... FileN,每个目录都包含一个子目录,如我在上面的结构中所示。 如果我在H:\\驱动器中运行bat文件,则必须在每个目录内创建一个名为test的文件夹,其中包含其各个子目录的重命名pdf文件。

@ECHO OFF &SETLOCAL
for /F "delims=" %%a in ('dir /b /s /a-d *.pdf') do (
     set "fname=%%~fa"
     for %%b in ("%%~dpa.") do set "nname=%%~nxb"
     setlocal enabledelayedexpansion
     ECHO ren "!fname!" "!nname!.pdf"
     endlocal
)

注意:您只能重命名一个pdf /文件夹。


OP的其他一些代码:

@ECHO OFF &SETLOCAL
MKDIR "H:\Myfolder\test"
for /f "delims=" %%i in ('DIR /b /a-d "H:\Myfolder"') do (
    ECHO %%i
    CD "H:\Myfolder\%%~i"
    ren *.pdf "%%~nxi.pdf"
    copy *.pdf "H:\Myfolder\test"
    cd H:\Myfolder
)
cd H:\Myfolder\test
del H:\Myfolder\test\test.pdf 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM