使用批处理脚本重命名上个月的文件
Rename a file with the previous month using a batch script
我想使用批处理脚本重命名上个月+当年的文件。请帮忙!
例如:重命名c:\Example.txt Example_MMYY.txt
其中 MM = 上个月,YY = 今年或 Example_0718.txt
试试这个:
:prevmonthren
setlocal
::argument value
::set "file=%~f1"
::hardcoded value
set "file=testfile.txt"
for %%# in ("%file%") do (
set "ext=%%~x#"
set "nam=%%~n#"
)
for /f %%# in ('wMIC Path Win32_LocalTime Get /Format:value') do @for /f %%@ in ("%%#") do @set %%@
set /a prev_month=month-1
if %prev_month% lss 10 set "prev_month=0%prev_month%"
if %month%==1 (
set "prev_month=12"
set /a year=year-1
)
set year=%year:~2%
ren %file% %nam%_%prev_month%%year%%ext%
endlocal
您可以对文件位置使用硬编码值或取消注释设置文件位置的第一行(并注释第二行)以使用命令行参数。
如果您可以调用 Powershell 获取日期,您可以简化代码。
for /f "usebackq" %%G in (`powershell "(Get-Date).AddMonths(-1).ToString('MMyy')"`) do set "mmyy=%%G"
rename Example.txt Example_%mmyy%.txt
这个问题可以用非常简单的方法解决:
@echo off
setlocal
for /F "tokens=1,3 delims=/" %%m in ("%date%") do (
set /A "MM=1%%m-1, YY=%%n-!(MM-100), MM+=12*!(MM-100)"
)
ren Example.txt Example_%MM:~-2%%YY:~-2%.txt
此方法假设%date%
变量的格式为MM/DD/YYYY
。如果不是,只需更改 "tokens=1,3"
选项中的数字即可。
我想使用批处理脚本重命名上个月+当年的文件。请帮忙!
例如:重命名c:\Example.txt Example_MMYY.txt
其中 MM = 上个月,YY = 今年或 Example_0718.txt
试试这个:
:prevmonthren
setlocal
::argument value
::set "file=%~f1"
::hardcoded value
set "file=testfile.txt"
for %%# in ("%file%") do (
set "ext=%%~x#"
set "nam=%%~n#"
)
for /f %%# in ('wMIC Path Win32_LocalTime Get /Format:value') do @for /f %%@ in ("%%#") do @set %%@
set /a prev_month=month-1
if %prev_month% lss 10 set "prev_month=0%prev_month%"
if %month%==1 (
set "prev_month=12"
set /a year=year-1
)
set year=%year:~2%
ren %file% %nam%_%prev_month%%year%%ext%
endlocal
您可以对文件位置使用硬编码值或取消注释设置文件位置的第一行(并注释第二行)以使用命令行参数。
如果您可以调用 Powershell 获取日期,您可以简化代码。
for /f "usebackq" %%G in (`powershell "(Get-Date).AddMonths(-1).ToString('MMyy')"`) do set "mmyy=%%G"
rename Example.txt Example_%mmyy%.txt
这个问题可以用非常简单的方法解决:
@echo off
setlocal
for /F "tokens=1,3 delims=/" %%m in ("%date%") do (
set /A "MM=1%%m-1, YY=%%n-!(MM-100), MM+=12*!(MM-100)"
)
ren Example.txt Example_%MM:~-2%%YY:~-2%.txt
此方法假设%date%
变量的格式为MM/DD/YYYY
。如果不是,只需更改 "tokens=1,3"
选项中的数字即可。