2013-04-26 294 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

相關問題