1.5k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo,

wie in der Überschrift erwähnt, möchte ich einen Ordner mit bestimmter Bezeichnung verschieben. Am besten veranschauliche ich es am Beispiel:

C:\TEST\201601
C:\TEST\201602
.
.
.
C:\TEST\201612

Die Batch soll mir zuerst den Ordner 201601 nach C:\NEU verschieben.
Bei nächsten mal wenn ich die Batch ausführe, sollte der Ordner 201602 nach C:\NEU verschoben werden.

Im nächsten Jahr wird es dann so aussehen
C:\TEST\201701
C:\TEST\201702

Dies funktioniert nicht:
if exist "C:\TEST\*01*" goto gefunden1
goto nächste2

:gefunden1
move "C:\TEST\*01*" "C:\NEU\" /E /C /Q /I /Y
goto ende

:nächste2
if exist "C:\TEST\*02*" goto gefunden2

:gefunden2
move "C:\TEST\*02*" "C:\NEU\"

7 Antworten

0 Punkte
Beantwortet von
Dies funktioniert nicht


und was genau geht nicht? fehlermeldung?
0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Move unterstützt keine Wildcards bei Verzeichnisnamen.

Gruß Flupo
0 Punkte
Beantwortet von
@loollerbob
Es werden alle Daten und Ordner aus C:\TEST verschoben.
0 Punkte
Beantwortet von
natürlich werden sie das

*01*
ist in beiden Beispielen enthalten:

C:\TEST\201701
C:\TEST\201702
0 Punkte
Beantwortet von
Hallo,
:gefunden1
move C:\TEST\*01* C:\NEU\ /E /C /Q /I /Y
goto ende
Ohne den " ", nur falls Leerstellen in der Dateibezeichnung vorkommen.
Beispielsweise "C:\NEU 01"

Viele Befehle verhalten sich anders in einer Batch, als man das vom Zeilenkommando gewohnt ist.
Es hängt auch davon ab, worauf der move seine Runden dreht, emm die Daten schiebt.


Gruß
0 Punkte
Beantwortet von
Gibt es nicht ein Befehl oder Script, der eine chronologische Aufzählung abruft?
0 Punkte
Beantwortet von
A5 kann genausowenig funktionieren da das Suchmuster immernoch nicht eindeutig ist.
*01* entspricht halt weiterhin allen Ordnern wegen 2016

eine Möglichkeit z.B. wäre das aktuelle Datum (Jahr) mit auszuwerten und als Variable in den Ordnernamen zu integrieren
z.B. so (ungetestet):

for /f "Tokens=1-3 Delims=. " %%i in ('date /t') do set dt=%%k
move C:\TEST\%dt%01 C:\NEU\
...