2012-06-26 24 views
9

Sto cercando un comando della shell cmd in Windows XP, come "dir/b/s" che include i valori di data e ora per ogni file nel risultato. Tutti i dati - percorso, nome file e data/ora - devono essere su un'unica riga. Qualcuno può fornire un comando per realizzare questo? Grazie.cmd dir/b/s più data

risposta

1

Non esiste un modo diretto per farlo utilizzando DIR. Avresti bisogno di scrivere un wrapper che tolga i dettagli estranei da un DIR/s

A questo scopo potresti utilizzare sia powershell, vbscript o javascript.

Ecco una risposta correlata utilizzando PowerShell: How to retrieve a recursive directory and file list from PowerShell excluding some files and folders? sebbene sia necessario modificare questo per aggiungere la data/ora.

UPDATE: Ecco un sito MAD che elenca una directory ricorsiva passeggiata in un sacco di lingue diverse: http://rosettacode.org/wiki/Walk_a_directory/Recursively

12

Se si desidera che i file solo

for /r %F in (*) do @echo %~tF %F 

Se si desidera sia i file e le directory quindi utilizzare il comando DIR con FOR/F

for /f "eol=: delims=" %F in ('dir /b /s') do @echo %~tF %F 

Se utilizzato in un file batch poi %F e %~tF mus t passare a %%F e %%~tF.

+0

Questo risponde perfettamente alle mie esigenze. Grazie. – user1483922

+2

@ user1483922 - Quando ottieni una risposta che soddisfa perfettamente le tue esigenze, devi accettarla facendo clic sul segno di spunta vicino all'angolo in alto a sinistra della risposta. Accettando una risposta, gli altri sanno che la domanda ha avuto risposta, ti assegna 2 punti per il tempo dedicato ad accettare la risposta e assegna alla persona che ha postato la risposta 15 punti. – dbenham

0

Che ne dite di qualcosa di simile:

for /f "tokens=*" %a in ('dir *.* /a:d /b /s') do for /f "skip=5 tokens=1,2,3,4*" %b in ('dir *.* /a:-d') do @if %e neq bytes @echo %a\%e%f %b %c 

Semplici, anche se forse ho complicato un po ':-)