重命名批处理文件并保留部分文件名
Renaming a batch file and keeping part of the filename
我看过很多关于类似请求的帖子,但我找不到适合我正在尝试做的事情的帖子。这很简单,但我似乎无法理解。
ren FILE??.txt FILE%Year%%Month%%Day%??.txt
copy FILE%Year%%Month%%Day%??.txt C:\Users\me\Desktop\Batch\renamed\achod%Year%%Month%%Day%??.txt
我无法获取保留“??”的脚本表示第一个文件可能具有的随机字符。
感谢任何帮助。
您将无法直接使用通配符重命名文件。相反,您需要找到所有适用的文件,然后重命名每个文件。
下面的脚本在您 question/comments:
的假设下工作
- 文件名长度为 6 个字符。
- 只有最后 2 个字符可以互换。
当然,脚本可以很容易地适应其他设置,但这正是您所要求的。
SETLOCAL EnableDelayedExpansion
REM Set your Year, Month, Day variable values here.
REM They will be used for file renaming.
...
CD "C:\Path\To\Files"
FOR /F "usebackq tokens=* delims=" %%A IN (`DIR "File??.txt" /B /A:-D`) DO (
REM Extract the last 2 chars of the file name.
SET FileName=%%~nA
SET First4=!FileName:~0,4!
SET Last2=!FileName:~-2!
REM Rename the file, inserting the new data.
RENAME "%%A" "!First4!%Year%%Month%%Day%!Last2!%%~xA"
)
ENDLOCAL
我看过很多关于类似请求的帖子,但我找不到适合我正在尝试做的事情的帖子。这很简单,但我似乎无法理解。
ren FILE??.txt FILE%Year%%Month%%Day%??.txt
copy FILE%Year%%Month%%Day%??.txt C:\Users\me\Desktop\Batch\renamed\achod%Year%%Month%%Day%??.txt
我无法获取保留“??”的脚本表示第一个文件可能具有的随机字符。
感谢任何帮助。
您将无法直接使用通配符重命名文件。相反,您需要找到所有适用的文件,然后重命名每个文件。
下面的脚本在您 question/comments:
的假设下工作- 文件名长度为 6 个字符。
- 只有最后 2 个字符可以互换。
当然,脚本可以很容易地适应其他设置,但这正是您所要求的。
SETLOCAL EnableDelayedExpansion
REM Set your Year, Month, Day variable values here.
REM They will be used for file renaming.
...
CD "C:\Path\To\Files"
FOR /F "usebackq tokens=* delims=" %%A IN (`DIR "File??.txt" /B /A:-D`) DO (
REM Extract the last 2 chars of the file name.
SET FileName=%%~nA
SET First4=!FileName:~0,4!
SET Last2=!FileName:~-2!
REM Rename the file, inserting the new data.
RENAME "%%A" "!First4!%Year%%Month%%Day%!Last2!%%~xA"
)
ENDLOCAL