查詢兩個日期的最明智的方法是什麼? PowerShell或Windows批處理解決方案是首選。 我想有作爲主題描述的列表:創建一個包含文件名,創建日期,修改日期的列表
文件名,創建日期,最後修改
我知道: 風向有/ T:A,W,C]但不能找到一種方法來一次顯示多個日期。 對於只有查詢修改日期的@fdate @ftime文件。
查詢兩個日期的最明智的方法是什麼? PowerShell或Windows批處理解決方案是首選。 我想有作爲主題描述的列表:創建一個包含文件名,創建日期,修改日期的列表
文件名,創建日期,最後修改
我知道: 風向有/ T:A,W,C]但不能找到一種方法來一次顯示多個日期。 對於只有查詢修改日期的@fdate @ftime文件。
如果PowerShell是可以接受的:
Get-ChildItem | Select-Object -Property Name, CreationTime, LastWriteTime
wmic datafile where (drive="C:" and path="\\somedir\\somesubdir\\") get Caption,CreationDate,LastModified
這不是一個完整的劇本,但只是一個example.Change驅動器和路徑的目錄你想(在路徑雙斜線的心)名單。您還應該注意WMIC
輸出是unicode(與cmd不同) 而WMIC在XP家庭版中不可用。
您還可以使用構建在JScript(每個窗口有它),並創建一個混合.BAT/JScript中(保存/使用腳本.BAT):
@if (@X)==(@Y) @end /*JScript comment**
@echo off
cscript //E:JScript //nologo "%~f0" "%~1"
exit /b 0
***************End of JScript comment**/
WScript.Echo("====starting===");
var args=WScript.Arguments;
var folderC=args.Item(0);
if (WScript.Arguments.lengrh == 1 || args.Item(0)=="" ) folderC = ".";
WScript.Echo("Checking "+folderC);
function fileLIster(folderC){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folder = fso.GetFolder(folderC);
var fc = new Enumerator(folder.files);
var s = "";
for (; !fc.atEnd(); fc.moveNext()) {
s += fc.item() + " Created:[" + fc.item().DateCreated + "] Modified:[" + fc.item().DateLastModified+"]" ;
s += "\r\n";
}
WScript.Echo(s);
}
fileLIster(folderC);
這是一個簡單的批處理文件它接受一個參數,用於列出要列入文件的目錄並輸出文件名,創建日期和修改日期。
不是特別快,但它的作品,我認爲這是語言環境無關:
@echo off
for %%F in (*) do for /f %%C in (
'dir /tc "%%F"^|findstr "^[0-9]"'
) do for /f %%M in ("%%~tF") do echo "%%F", %%C, %%M
這是多快,但我認爲這是依賴於規定的時間格式的語言環境。您可能需要更改該令牌在第一FOR/F環捕獲:
@echo off
for /f "tokens=1,4*" %%A in (
'dir /a-d /tc *^|findstr "^[0-9]"'
) do for /f %%M in ("%%~tC") do echo "%%C", %%A, %%M
我的時間格式爲HH:MM AM
。如果你的時間格式是沒有AM/PM的24小時格式,那麼我認爲你需要"tokens=1,3*"
把'Get-ChildItem'傳送到'Select-Object'中會有效果。這是有據可查的 – Matt 2014-09-22 15:12:32