2013-04-26 3 views
1

У меня есть 50 пакетных файлов, те же даты, что и «04.2013» в скрипте. Каждый месяц я меняю дату mannualy как «04.2013 на 05.2013», редактируя каждый командный файл.Как изменить дату в .bat командных файлах

Могу ли я сделать это по одному сценарию? пожалуйста, помогите

У меня есть ниже команды в командных файлах: «установить DateFolder = 04,2013»

+1

Возьмите инструмент поиска и замены, например. 'Sed'. – Endoro

+0

Проблема с работой с датами в пакетном режиме заключается в том, что точные инструкции зависят от локали вашего компьютера, так как дата может (только изначально) возвращаться в виде строки, которую вы должны проанализировать. Мэтт Уильямсон дал вам хороший ответ, чтобы вы начали. Также см. Http://www.robvanderwoude.com/datetime.php для других идей, включая другие утилиты, которые могут помочь избежать зависимости от локали. –

ответ

0

Другой способ иметь пакетный файл с именем DateFolder.bat, который содержит

@set DateFolder=04.2013 

и в каждом пакетном файле включают это befo вновь начинают использовать переменную

call DateFolder.bat 

Это предполагает, что все командные файлы используют ту же переменную - и вам нужно только настроить DateFolder.bat в будущем.

+0

@echo от SETLOCAL набор DateFolder = 04,2013 множество TargetFolder = C: \ Documents и Settings \ nk94 \ Desktop \ тест макро \ Raw Файлы :: скопировать новейший файл из AccrualPnLMTD и переименовать его в AccrualMTD.csv call: copyAndRename "C: \ Documents and Settings \ nk94 \ Desktop \ test macro \ PWMF \ AccrualPnLMTD" "% TargetFolder% \ AccrualMTD.CSV " –

+0

:: Готов Гот: ВФ : copyAndRename набор SourceFolder =% ~ 1 набор Целевой_файл =% ~ 2 :: Найдите самый новый файл в исходной папке для/ф" токенов = * "%% F in ('dir/b/od/ad"% SourceFolder% "') установить« NewestFile = %% F » :: скопировать и переименовать его в цель копировать«% SourceFolder% \% NewestFile % ""% TargetFile% " :: Выполнено с этой подпрограммой goto: eof –

+0

foxidrive, это мой скрипт batchfile. Можете ли вы предложить PLZ, где я могу поставить команду« ca ll DateFolder.bat " –

2

Я предлагаю вам заменить

set datefolder=04.2013 

и использовать переменную DATE%% динамически получить Дата. В зависимости от формата даты вам просто нужно немного кода, чтобы вытащить месяц и год.

пример:

Date format: Fri 04/26/2013 

следующий код будет извлечь месяц и год

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

Thx за вашу помощь! –

+0

Я не могу изменить формат даты, –

+0

Предположим, что это только цифры, то как я могу изменить в каждом пакетном файле. создавая только пакетный файл onc: 04.2013 должен измениться как 05.2013 –

Смежные вопросы