我正在使用win 7平台。需要你的帮助来创建一个简化我的工作的bat文件。我的文件夹和文件以这种结构排列。
File1中
文件2
FileN
我想生成一个批处理文件,该文件将pdf文件重命名为它包含的文件夹的名称。例如,在上面的结构中,“abcd.pdf”被重命名为folder1.pdf。所有pdf文件都是这样做的。
还在每个目录(file1,file2..etc)中创建一个名为“test”的文件夹,其中包含其各自目录的所有重命名的pdf文件。
如果我将 File1 中的所有文件夹复制到Myfolder&运行bat文件,将创建一个名为test的文件夹,所有pdf文件将被重命名并复制到test文件夹。
但我想要的是,我想在H:\驱动器中运行bat文件。让我们假设H:\驱动包含所有目录File1,File2 .... FileN,每个目录包含一个子目录,如我在上面的结构中所示。如果我在H:\驱动器中运行bat文件,则必须在每个目录中创建一个名为 test 的文件夹,其中包含其各自子目录的重命名的pdf文件。
答案 0 :(得分:2)
@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