2013-04-26 293 views
1

我有50个批处理文件,在脚本中具有相同日期,例如“04.2013”​​。 每个月我都会通过编辑每个批处理文件来更改日期mannualy,比如“04.2013到05.2013”​​。如何在.bat批处理文件中更改日期

我可以通过一个脚本来完成吗?请帮助

我的批处理文件低于命令: “设置DateFolder = 04.2013”​​

+1

拿一个搜索和替换工具,例如。 'sed'。 – Endoro 2013-04-26 14:10:36

+0

批处理日期的麻烦在于确切的说明取决于您的计算机的区域设置,因为日期只能(本地)以字符串形式返回,您必须解析该字符串。马特威廉姆森给你一个很好的答案让你开始。另请参阅http://www.robvanderwoude.com/datetime.php了解其他想法,包括可帮助避免语言环境依赖性的其他实用程序。 – 2013-04-26 14:33:36

回答

0

另一种方法是有一个名为DateFolder.bat一个批处理文件,它包含

@set DateFolder=04.2013 

并在每个批处理文件中包含此befo重新开始使用可变

call DateFolder.bat 

这是假设所有的批处理文件中使用相同的变量 - 你只需要调整DateFolder.bat未来。

+0

关闭@echo SETLOCAL 集DateFolder = 04.2013 集TargetFolder = C:\ Documents和Settings \ nk94 \桌面\测试宏\ RAW文件 ::从AccrualPnLMTD复制最新的文件重命名为AccrualMTD.csv 调用:copyAndRename“C:\ Documents and Settings \ nk94 \ Desktop \ test macro \ PWMF \ AccrualPnLMTD”“%TargetFolder%\ AccrualMTD。CSV “ – 2013-04-29 11:35:25

+0

::完成 转到:EOF :copyAndRename 组SourceFolder =%〜1 组的TargetFile =%〜2 ::查找FOR/F源文件夹 最新的文件” 令牌= * “%% F in('dir/b/od/ad”%SourceFolder%“')do set”NewestFile = %% F“ ::复制并将其重命名为目标 copy”%SourceFolder%\%NewestFile %“”%TargetFile%“ ::做这个子程序 goto:eof – 2013-04-29 11:37:21

+0

foxidrive,这是我的批处理文件脚本,你可以在PLZ中建议我可以把命令”ca “DateFolder.bat” – 2013-04-29 11:38:45

2

我建议您更换

set datefolder=04.2013 

,并使用日期%%变量动态获取日期。根据你的日期格式,你只需要一点点代码就可以得出月份和年份。

例如:

Date format: Fri 04/26/2013 

下面的代码将年份和月份提取

for /f "tokens=2,4 delims=^/ " %%a in ('echo %date%') do (echo %%a.%%b) 
+0

Thx为您提供帮助! – 2013-04-26 15:44:16

+0

我不能更改日期格式, – 2013-04-26 15:46:22

+0

假设这只是数字,那么我如何在每个批处理文件中进行更改。通过只创建onc批处理文件:04.2013应该改变像05.2013 – 2013-04-26 15:48:52

相关问题