2016-04-21 92 views
-3

我在CMD運行以下命令:動態日期

Prog.exe - 時間Components_2016_04_19_11.ss

我想寫將每小時運行的批處理文件,我需要的日期在相應地改變 - 日期需要在上面的格式,日期的最後部分是當前小時減7小時

因此,如果現在的時間是1/1/2016 20:43該命令將如下所示

Prog.exe -time Components_2016_01_01_13.ss 

我需要幫助創建相應的批處理文件

感謝

+1

你有什麼試過?如果你正在尋找一個地方開始,[這個答案](http://stackoverflow.com/a/36733204/1683264)可能會給你一些想法。 – rojo

+0

查看'Get-Date -format'。它可以讓你創建你想要的字符串。 https://technet.microsoft.com/en-us/library/ee692801.aspx – lit

回答

1
Get-Date 

Get-Date | Get-Member 
1

您可以使用此:

$GBL = 0 
do{ 
    Prog.exe 
    Get-Date 
    sleep 3600 
} 
while($GBL -lt 1) 

$GBL它是循環無窮一個變量。裏面的執行程序並使用睡眠等待3600秒1小時再次執行。它用於標記執行代碼的日期和時間。

我不明白你是否需要這個或其他東西。

您可以用您需要的代碼修改Prog.exe的行。

如果你回答我,我可以幫你。

有一個好的一天(:

2

以供將來參考,類似「寫這篇文章,我這裏是我的要求」的問題沒有得到很好的接收到這兒不過這一次,只是爲了防止更多無法幫助你解決問題,我會幫你解決問題

純批次對於日期數學來說非常麻煩,補償午夜,月份變化,閏年等可能是一場噩夢。使用不同的語言 - 一個具有適當的日期對象,將處理日曆的怪癖,而不必破解它們。

這裏有一個PowerShell的解決問題的方法:

Prog.exe -time ("Components_{0}.ss" -f (Get-Date).addHours(-7).toString("yyyy_MM_dd_HH")) 

就是這樣,只是一個班輪。如果您需要批處理腳本,則可以使用PowerShell幫助程序執行日期數學繁重工作。

@echo off & setlocal 

for /f "delims=" %%I in (
    'powershell -noprofile "(Get-Date).addHours(-7).toString('yyyy_MM_dd_HH')"' 
) do (
    Prog.exe -time Components_%%I.ss 
) 

goto :EOF