WinFuture-Forum.de: [Batch] Handhabung von allen Ordnern mit dem gleichen Namensanfang - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[Batch] Handhabung von allen Ordnern mit dem gleichen Namensanfang


#1 Mitglied ist offline   BleenPaper 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 06. Dezember 19
  • Reputation: 0

geschrieben 06. Dezember 2019 - 23:37

Hallo zusammen!

Ich wollte aus vielen Unterordnern alle Dateien in einen Ordner kopieren und habe mich dafür vom Internet inspirieren lassen :8): , um das mit einer Batch Datei zu realisieren. So habe ich dann den Ausdruck

for /r "DESTINATION" %%f in (*) do @copy "%%f" "TARGET"


gefunden ("DESTINATION" - Pfad des betrachteten Ordners, "TARGET" - Pfad des Zielordners), - der funktioniert einwandfrei :P . Jetzt habe ich allerdings das Problem, dass ich manchmal nicht die Dateien aus allen Ordnern haben möchte, sondern nur die, die in den Unterordnern liegen, die (z.B.) mit den Namen "not" anfangen.

Eine Ordnerstruktur (ohne Dateien) als Beispiel:

Laufwerk C:
-> Destination
---> green
---> yellow
---> not red
---> blue
---> not pink
---> not white
---> black
-> Target

Wenn ich jetzt alle Dateien aus allen Ordnern in "Destination" in den Ordner "Target" verschieben möchte, kann ich den Command wie folgt verwenden:

for /r "C:\Destination" %%f in (*) do @copy "%%f" "C:\Target"


Jetzt ist mein Ziel aber, dass ich alle Dateien aus den Ordnern haben möchte, die im Ordner "Destination" liegen und mit dem Namen "not" anfangen. Die Ordnerstruktur ist so wie sie ist, da lässt sich leider nichts dran ändern :imao: . Im Beispiel wären das alle Dateien aus den Ordnern "not red", "not pink" und "not white".


Meine Versuch war jetzt folgender Code:

for /r "C:\Destination\not*" %%f in (*) do @copy "%%f" "C:\Target"


Dieser Code funktioniert aber nicht, kann mir da jemand von euch helfen? :( :blink:

Vielen Dank! :D
Beste Grüße (und bis morgen :huh:), BleenPaper
0

Anzeige



#2 Mitglied ist offline   MasterP82 

  • Gruppe: aktive Mitglieder
  • Beiträge: 204
  • Beigetreten: 30. Juni 12
  • Reputation: 9

geschrieben 07. Dezember 2019 - 07:21

sollte so funktionieren (die Subroutine habe ich leider nicht wegbekommen):

@echo off
for /d /r %%G in ("not*") DO call :sub1 C:\Destination\%%~nxG
goto :eof
:sub1
for /r "%*" %%f in (*) do copy "%%f" "C:\Target"
goto :eof

0

#3 Mitglied ist offline   BleenPaper 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 06. Dezember 19
  • Reputation: 0

geschrieben 07. Dezember 2019 - 10:25

Fast Perfekt!

Ich habe es gerade einmal mit meine Beispiel probiert und es funktioniert wunderbar! (Falls ihr es auch mal ausprobieren wollt, ich habe die Ordnerstruktur mal angehängt).

In meinem echten Problem ist es jedoch so, dass in dem "DESTINATION"-Pfad Leerzeichen sind und der Pfad somit eigentlich in "..." gepackt werden müsste. Wenn ich das jedoch mache, funktioniert das ganze nicht mehr :/.

Dieser Code Funktioniert:

@echo off
for /d /r %%G in ("Not*") DO call :sub1 D:\Users\Bleen\Desktop\Destination\%%~nxG
goto :eof
:sub1
for /r "%*" %%f in (*) do copy "%%f" "D:\Users\Bleen\Desktop\Target"
goto :eof


Dieser Code funktioniert nicht:
@echo off
for /d /r %%G in ("Not*") DO call :sub1 "D:\Users\Bleen\Desktop\Destination\%%~nxG"
goto :eof
:sub1
for /r "%*" %%f in (*) do copy "%%f" "D:\Users\Bleen\Desktop\Target"
goto :eof



Hat vielleicht noch jemand dafür eine Lösung? Sonst schon einmal vielen Dank, hätte ich niemals hinbekommen :D

Dankeschön :P
0

#4 Mitglied ist offline   MasterP82 

  • Gruppe: aktive Mitglieder
  • Beiträge: 204
  • Beigetreten: 30. Juni 12
  • Reputation: 9

geschrieben 07. Dezember 2019 - 16:33

also mein Testpfad hat auch Leerzeichen und er kopiert so wie ich es gepostet habe;

C:\Users\User\Desktop\Alter Desktop 2018\noch machen\Batch\Neuer Ordner (2)\Destination\not red\1.txt


Du brauchst es nicht in "..." packen, da bei dem call alle Parameter bis zum Zeilenende übergeben werden und in der Subroutine habe ich "%*" anstatt %1 %2 %3 %4.... verwendet
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0