2014-03-19 40 views
0

我試圖創建一個簡單的txt文件有兩列如下 - 第一個是最後修改日期的日期和下一個是完整的文件名(包括路徑):打印一個包含完整文件名和路徑以及最後修改日期的目錄列表?

/dir > list.txt幾乎沒有工作,但它按目錄對所有文件進行分組,我試圖將目錄與文件名和上次修改日期放在同一行。

我需要使用批處理腳本?或CMD線?我正在使用Windows XP。

YYYY/MM/DD C:/Directory1/Directory2/Directory3/filename.txt 
YYYY/MM/DD C:/Directory1/Directory2/Directory3/filename.txt 
YYYY/MM/DD C:/Directory1/Directory2/Directory3/filename.txt 
YYYY/MM/DD C:/Directory1/Directory2/Directory3/filename.txt 
YYYY/MM/DD C:/Directory1/Directory2/Directory3/filename.txt 

這幾乎也工作,但我不能讓最後修改日期:

dir /s /b > list.txt 

注 - 我將放在父目錄此CMD或.bat文件,我不能安裝任何程序或軟件(即python,perl等)解決方案都必須是簡單的CMD行或.bat文件。

回答

2
for /f "delims=" %%a in ('dir/s/b/a-d') do echo %%~ta %%a 

爲一批線,貫穿降低%%%如果你是從提示符下運行。

(井 - ,讓您的日期和時間,然後將文件名 - ?你真的只想要日期)

@ECHO OFF 
SETLOCAL 
for /f "delims=" %%a in ('dir/s/b/a-d') do (
FOR /f "tokens=1-3delims=/: " %%q IN ("%%~ta") DO echo %%s/%%r/%%q %%a 
) 

GOTO :EOF 

得到你指定的爲yyyy/mm/dd格式我係統但我使用dd/mm/yyyy的日期格式 - 您尚未指定您的日期格式,因此詳細信息可能有所不同。

+0

請告訴我,我如何獲得或顯示大小? –

+0

@chepelucho'%〜za'會顯示你的大小。要獲得完整列表,請在提示符下鍵入'for /?' - 選項在結尾處詳細說明。 – Magoo

1

由於您使用的是Windows XP,這將讓使用PowerShell所需文件屬性相比CMDLINE /批處理腳本時更容易。使用CMD檢索文件的最後修改日期有點麻煩。

試試這個:

$files=Get-ChildItem -recurse "full_path_to_test_directory" 
for($i=0;$i -lt $files.Count;$i++) { 
$f=$files.Get($i) 
$fName=$f.FullName 
$fModified=Get-Date $f.LastWriteTime -Format "yyyy\\MM\\dd" 
$out="$($fModified) $($fName)" 
Add-Content -Path "full_path_to_destination_file" -Value $out 

}

保存爲getFileProperties.ps1從PowerShell控制檯運行它。

您也可以從命令運行上面的PowerShell腳本如下:

powershell -File "full_path_to_above_powershell_script" 
0

我需要同樣的事情。我想獲得目錄中所有文件和所有子目錄的最後修改日期,並將其輸出到文件中,就像OP一樣。 Magoo列出了它的膽量,但缺少的是保存到文件。所以,這是從命令提示符很好地工作:

for /f "delims=" %a in ('dir/s/b/a-d') do echo %~ta %a >>c:\temp\filelist.txt 
+0

請告訴我,我如何獲得或顯示大小? –

相關問題