2013-12-08 41 views
1

我想將文件的訪問時間增加給定的小時數,例如, 12小時。遞增文件訪問時間

我找到了一種方法使用Unxutilstouch.exe工具破解它,並手動計算新日期:

touch.exe -a -t MMDDhhmmCCYY my_file.txt 

不過,我想你完成這項無需手動輸入新的日期。所以這裏是我的問題:

  1. 我該如何檢索DOS中的文件訪問時間?
  2. 我該如何增加它?
  3. 我怎樣才能把它們放到腳本/批處理文件中?
  4. 還是有更好的方法?

非常感謝!

回答

3

既然你已經得到它標記爲PowerShell的:

$file = Get-ChildItem testfile.txt 
$file.lastwritetime 

$file.LastWriteTime = ($file.LastWriteTime).AddHours(12) 
$file.LastWriteTime 

Tuesday, November 19, 2013 5:27:18 PM 
Wednesday, November 20, 2013 5:27:18 AM 
+1

這將不超過一個文件的工作,因爲你使用的是'GET-ChildItem'它只是事更改過濾器以保存$ file變量中的多個文件。這是如何爲更多文件完成的。 '$ file = Get-ChildItem -path \ temp -filter * .log; $ file | foreach {0} _ LastWriteTime =($ _ LastWriteTime).AddHours(12); \t $ _。LastWriteTime }' – nohwnd

1

你可以用這個例子中得到批次內的最後訪問時間:

for /f %%A in (' dir /b /TA "c:\test.txt" ') do set accesstime=%%~tA 
echo %accesstime% 

但隨後正確地增加它,你是要去做這樣的事情: Adding to %TIME% variable in windows cmd script

並計算跳躍日期等

在PowerShell中,您可以讀取和寫入的LastAccessTime的文件,像這樣:

$file = Get-Item "c:\test.txt" 
$file.LastAccessTime = ($file.LastAccessTime).AddHours(12)