Batch file 通过从指定字符中删除字符串重命名文件

Batch file 通过从指定字符中删除字符串重命名文件,batch-file,Batch File,我在一个目录中有许多文件,每个文件的文件名包含一个-字符: M12212324-20170129ases.pdf KlADSDFSS-sdfds20170129ases.pdf MNSNDSNSS-20170129asdfd.pdf 仅使用批处理脚本,我需要相应地重命名文件 M12212324.pdf KlADSDFSS.pdf MNSNDSNSS.pdf 请帮帮我。你可以这样做。将此保存为*.cmd脚本。它会重命名当前目录中的*.PDF文件: @echo off setlocal for

我在一个目录中有许多文件,每个文件的文件名包含一个
-
字符:

M12212324-20170129ases.pdf
KlADSDFSS-sdfds20170129ases.pdf
MNSNDSNSS-20170129asdfd.pdf
仅使用批处理脚本,我需要相应地重命名文件

M12212324.pdf
KlADSDFSS.pdf
MNSNDSNSS.pdf

请帮帮我。

你可以这样做。将此保存为
*.cmd
脚本。它会重命名当前目录中的*.PDF文件:

@echo off
setlocal

for /f "delims=" %%i in ('dir /b /a-d *.PDF') do for /f "tokens=1 delims=-" %%a in ("%%~i") do ren "%%~i" "%%a%%~xi"
。。。或者从命令行运行此命令:

for /f "delims=" %i in ('dir /b /a-d *.PDF') do for /f "tokens=1 delims=-" %a in ("%~i") do ren "%~i" "%a%~xi"

你可以这样做。将此保存为
*.cmd
脚本。它会重命名当前目录中的*.PDF文件:

@echo off
setlocal

for /f "delims=" %%i in ('dir /b /a-d *.PDF') do for /f "tokens=1 delims=-" %%a in ("%%~i") do ren "%%~i" "%%a%%~xi"
。。。或者从命令行运行此命令:

for /f "delims=" %i in ('dir /b /a-d *.PDF') do for /f "tokens=1 delims=-" %a in ("%~i") do ren "%~i" "%a%~xi"

只需使用记事本或记事本++复制并粘贴此代码,并将其另存为重命名\u PDF\u Files.bat,然后将主文件夹拖放到其上即可

@echo关闭
标题通过拖放重命名文件夹及其子文件夹中的所有PDF文件
模式con cols=75行=3和颜色0E
设置“Drag_Dir=%~1”
设置“Ext=pdf”
如果[%Drag_Dir%]eq[”“]转到:错误
2> nul cd“%Drag_Dir%”和&Call:RenamePDFfiles | |转到:错误
资源管理器“%Drag\u Dir%”
出口
::********************************************
:重命名EPDF文件
回音(
echo请稍候…正在重命名PDF文件。。。
@对于/f“delims=“%%A in('Dir/A-d/b/s”%Drag\u Dir%\*-*.%Ext%'),请执行以下操作:(
@对于(“%%~A”)中的/f“tokens=1 delims=-”%%%B(
Ren“%%A”“%%~nxB.pdf”
) 
)
退出/b
::********************************************
:错误
模式con cols=75行=5和颜色0C
回音(
ECHO必须在此批处理程序上拖放文件夹
ECHO可重命名所有PDF文件
超时/T 10/NoBreak>nul
退出/b
::*****************************************

只需将此代码复制并粘贴到记事本或记事本++中,然后将其另存为重命名\u PDF\u Files.bat并将主文件夹拖放到其上即可

@echo关闭
标题通过拖放重命名文件夹及其子文件夹中的所有PDF文件
模式con cols=75行=3和颜色0E
设置“Drag_Dir=%~1”
设置“Ext=pdf”
如果[%Drag_Dir%]eq[”“]转到:错误
2> nul cd“%Drag_Dir%”和&Call:RenamePDFfiles | |转到:错误
资源管理器“%Drag\u Dir%”
出口
::********************************************
:重命名EPDF文件
回音(
echo请稍候…正在重命名PDF文件。。。
@对于/f“delims=“%%A in('Dir/A-d/b/s”%Drag\u Dir%\*-*.%Ext%'),请执行以下操作:(
@对于(“%%~A”)中的/f“tokens=1 delims=-”%%%B(
Ren“%%A”“%%~nxB.pdf”
) 
)
退出/b
::********************************************
:错误
模式con cols=75行=5和颜色0C
回音(
ECHO必须在此批处理程序上拖放文件夹
ECHO可重命名所有PDF文件
超时/T 10/NoBreak>nul
退出/b
::*****************************************

for/F“tokens=1*delims=-%a in('dir/a-D/B*.pdf')do@ren“%a-%B”“%a.pdf”@Aacini-这有点吹毛求疵,但如果文件名包含连续的
-
,则会失败。使用-jren“-.*(=\.pdf$)非常简单/i是否总是在
-
前面正好有九个字符?如果是这样,您可以这样做:
重命名“????????-*.pdf”“????????.pdf”
您可以从命令行执行:
for/F“tokens=1*delims=-%a in('dir/a-D/B*.pdf')do@ren”%a-%B”“%a.pdf”
@Aacini-这有点吹毛求疵,但如果文件名包含连续的
-
,则会失败。使用-jren“-.*(=\.pdf$)”非常简单,“/i是否总是在
-
前面有九个字符?如果是这样,您可以这样做:
重命名”??????????????-*.pdf”“
+1,或者从命令行中为(*-*.pdf)中的%a使用一个稍微简单一点的形式-
,do@for/f“delims=-%B在(“%a”)do@ren”%a“%B.pdf”
+1,或者从命令行中为(*-*.pdf)中的%a使用一个稍微简单一点的形式-
,do@for/f“delims=-%B在(“%a”)do@ren”%a“%B.pdf”