将变量字符串附加到文件名

时间:2017-04-18 18:07:41

标签: batch-file variables append getdate

我正在尝试使用附加字符串重命名5个特定文件。它们都遵循相同的名称格式,但具有不同的长度。

我想在此文件夹中附加文本"Apr-17_RA"

在此示例中,批处理将在5月1日运行,因此获取日期将为-1以运行上个月。

String1=Get-Date -format MMM
String2=Get-Date -format YY
String3=_RA

档案位置: \\[SERVER]\TopFolder\F1\F2\F3\[X_FILE-NAME_].csv

文件应该说 \\[SERVER]\TopFolder\F1\F2\F3\[X_FILE-NAME_]& St1 & Str2 & Str3.csv

1个文件的最终名称: \\[SERVER]\TopFolder\F1\F2\F3\[X_FILE-NAME_Apr-17_RA.csv

当前批次的编辑:

:assign variable for your file prefix
set filesuffix=Apr-17_RA

:create a temporary drive mapping to the target folder
net use m: "\\[Server]\[F1]\[F2]\[F3]\[F4]"

:change working directory to target folder
cd /d m:

:rename target files
ren [X_File-1_].csv [X_File-1_]%filesuffix%.csv
ren [X_File-2_].csv [X_File-2_]%filesuffix%.csv
ren [X_File-3_].csv [X_File-3_]%filesuffix%.csv
ren [X_File-4_].csv [X_File-4_]%filesuffix%.csv
ren [X_File-5_].csv [X_File-5_]%filesuffix%.csv

:remove the temporary mapping you created earlier
net use m: /delete

1 个答案:

答案 0 :(得分:1)

这是一个使用powershell的备注批处理文件。它会完成你没有完成的日期工作,你可以在适当的位置添加你自己的特定命令来自己完成脚本:

@Echo Off
Rem Enter date format string
Set "String1=MMM-yy"
Rem Enter date string suffix
Set "String2=_RA"
Rem Enter relative days from today, [use - for days ago].
Set "RelDays=-1"

For /F UseBackQ %%A In (
    `PowerShell "(Get-Date).AddDays(%RelDays%).ToString('%String1%')"`
) Do Set "RDate=%%A%String2%"

Rem Enter commands using new string variable
Echo(%%RDate%% = %RDate%

Timeout -1
GoTo :EOF