Come posso ottenere la sottocartella più recente nella directory?
Ho bisogno nel comando MKLINK /D
.Scarica l'ultimo comando di batch directory creato
Grazie
Come posso ottenere la sottocartella più recente nella directory?
Ho bisogno nel comando MKLINK /D
.Scarica l'ultimo comando di batch directory creato
Grazie
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i
echo Most recent subfolder: %a%
(%i
per Windows 10)
/b
è per il formato nudo/ad-h
solo le directory, ma non quelle nascostet:c
mezzi da usare la data di creazione per l'ordinamento (usare t:w
per ultima data di scrittura)/od
sorta prima i più vecchifor /F
esegue il comando e imposta una per il nome della directory, l'ultima è la più recente.Se si esegue questo direttamente sulla riga di comando (non in un file batch), utilizzare %
invece di %%
.
questo funziona con la directory corrente - come @iesou rilevare è necessario aggiungere il percorso della directory dopo dir
se avete bisogno di usare qualsiasi altro percorso di directory.
Esempio con percorso di directory specificato:
FOR /F "delims=" %%i IN ('dir "c:\Program Files" /b /ad-h /t:c /od') DO SET a=%%i
Per evitare che passando attraverso tutte le sottocartelle, è possibile modificare l'ordinamento per avere il primo più recente (/o-d
) e uscire dal ciclo for dopo la prima chiamare:
@echo off
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /o-d') DO (
SET a=%%i
GOTO :found
)
echo No subfolder found
goto :eof
:found
echo Most recent subfolder: %a%
+1 Per chiarire dopo 'dir' e prima di'/b' è necessario inserire la directory root. Inoltre non hai bisogno dell'eco se fa parte di un batch. Puoi semplicemente usare la variabile '% a%' perché l'ultimo valore su cui è stata impostata è la directory più recente. – iesou
@iesou Corretto - se non si specifica la directory, viene utilizzata la directory corrente. Aggiunto alla risposta e fornito una versione leggermente modificata. – marapet
@marapet Ho usato lo script sopra tuttavia se la cartella ha uno spazio, non funziona, ho perso qualcosa? – Arthor
Qualche miglioramento per i nomi dir con spazi
FOR /F " tokens=*" %%i IN ('dir /b /ad-h /od') DO (SET a=%%i)
ora si ottiene un = Dati applicazioni invece di un = Application
Nota: prestare attenzione allo spazio di fronte a "gettoni"
Un altro miglioramento per ignorare alcune corrispondenze: DO se non "%% i" == ".." se non "%% i" == "." IMPOSTATO – Thomas
http://stackoverflow.com/questions/17237324/how-to- find-the-last-directory-created-in-batch/20149008 # 20149008 – Farah