我见过很多关于类似请求的帖子,但我找不到一个适合我想做的事情。这很简单,但我似乎无法得到它。
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
我无法让脚本保持'??'表示第一个文件可能包含的随机字符。
感谢任何帮助。
答案 0 :(得分:1)
您将无法使用通配符直接重命名文件。相反,您需要找到所有适用的文件,然后重命名每个文件。
以下脚本在您的问题/评论的假设下运作:
当然,脚本可以非常容易地适应其他设置,但这可以按照您的要求进行。
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