2016-06-21 5 views
0

Ich habe versucht, das folgende Skript auszuführen, die die neueste Datei von einem Ordner in einen anderen Ordner kopiert. Aber ich habe das folgende Skript in verschiedenen Szenarien getestet, in denen es sogar die Datei CC * .txt kopiert, wenn sie in Unterordnern außer C: \ Source existiert. Aber ich wollte die neueste Datei nur aus dem Quellverzeichnis (C: \ Source) kopieren, das im folgenden Skript erwähnt wird, aber wenn die gleiche neue Datei in einem der Ordner/Unterordner existiert, sollte dies NICHT berücksichtigt werden vorschlagen.Batch-Datei, um die Datei aus einem bestimmten Ordner und nicht die Unterordner in den Zielordner zu kopieren

FOR /F %%I IN ('DIR "C:\Source\cc*.txt" /B /A:-D /T:W /O:D /S') DO SET "LATEST=%%~I" 
COPY "%LATEST%" "C:\Destination" 

PS: Vor allem, weil die /S, aber ich bin nicht sicher, welche Option die Datei verwenden muß nur vorschlagen aus dem angegebenen Verzeichnis C:\Source, freundlich zu holen.

Antwort

0

Entfernen Sie einfach die /S Option (die dir sagt auch Unterverzeichnisse zu verarbeiten):

FOR /F %%I IN ('DIR "C:\Source\cc*.txt" /B /A:-D /T:W /O:D') DO SET "LATEST=%%~I" 
COPY "C:\Source\%LATEST%" "C:\Destination" 

Da dir /B ohne die /S Schalter kehrt die Nur reine Dateinamen, Sie müssen den Quellspeicherort erneut in die Kopierquelle aufnehmen Das Skript funktioniert von jedem Arbeitsverzeichnis aus.

0

Versuchen Sie folgendes:

for /f "tokens=*" %%A in ('dir /b /s /O:D "C:\Source\cc*.txt"') do set "latest=%%A" copy "%latest%" "C:\Destination"

0

FOR /F %%I IN ('DIR cc*.txt /B /O:-D') DO COPY %%I "C:\Destination" & EXIT
Super einfach.


FOR /F "delims=|" %%I IN ('DIR "cc*.txt" /B /O:D') DO COPY %%I "C:\Destination"

Beide

tun sollten
Verwandte Themen