我正在寫一個bat腳本,我必須將文件中的日期保存到一個變量中。我怎樣才能做到這一點?如何從bat文件中的文件獲取日期?
我將使用該變量來檢查文件是否比N天更早,因此最好將日期保存爲允許我進行此類測試的格式。
我正在寫一個bat腳本,我必須將文件中的日期保存到一個變量中。我怎樣才能做到這一點?如何從bat文件中的文件獲取日期?
我將使用該變量來檢查文件是否比N天更早,因此最好將日期保存爲允許我進行此類測試的格式。
批處理文件中的日期操作幾乎不可能以合理的方式得到正確的。你唯一能做的就是支持你的文化,而忽略其他。
但是,如果您在批處理(或子例程)的參數中具有文件的名稱,則可以使用%~t1
。否則,執行以下操作:
for %%x in (%file%) do set datetime=%%~tx
在我的機器這個出來爲「2009-08-28 16:13」,那麼它可以被解析成它的各個部分:
:dissect_date_time
for /f "tokens=1-5 delims=-: " %%a in (%1) do set year=%%a&set month=%%b&set day=%%c&set hour=%%d&set minute=%%e
goto :eof
這是一個子程序你可以
call :dissect_date_time %datetime%
打電話,那麼你必須在各自的環境變量中的各個部分。根據您的日期/時間格式進行相應調整。這一個大量使用for
作爲分詞器。
一旦你有了單獨的部分,你可以嘗試通過簡單地使用當前日期/時間進行相同的過程並減去文件來確定文件的年代。不會很有趣,但是有用。
批處理命令語言並不真正取決於任務。微軟建議PowerShell
。
Microsoft Windows PowerShell命令行shell和腳本語言可幫助IT專業人員實現更高的控制和生產力。 Windows PowerShell使用新的面向管理員的腳本語言,130多種標準命令行工具以及一致的語法和實用程序,使IT專業人員能夠更輕鬆地控制系統管理並加速自動化。 Windows PowerShell易於採用,學習和使用,因爲它可與現有IT基礎架構和現有腳本投資協同工作,並且可在Windows XP,Windows Vista和Windows Server 2003上運行。
有關討論使用PowerShell執行類似任務,請參閱powershell-script-to-delete-old-files。
或者,一般而言,將任務委託給腳本語言。 – 2009-09-20 08:59:55
注意:除了命令行解釋器語言的語法源自那些日子(以及之前的CP/M),這很可能與DOS完全沒有關係。你不會包含CP/M標籤,對吧? – Joey 2009-09-14 17:17:59