WinFuture-Forum.de: Dateien in gleichnamigen Ordner verschieben Brauche Hilfe - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Dateien in gleichnamigen Ordner verschieben Brauche Hilfe


#1 Mitglied ist offline   Horst86 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 30. März 15
  • Reputation: 0

geschrieben 30. März 2015 - 08:56

Hallo Leute,

ich brauche mal eure Hilfe und hoffe ich bin in diesem Unterforum richtig ;)

Ich benutze eine Batch Datei um viele Dateien nacheinander in gleichnamige Ordner zu verschieben. Das funktioniert auch super. Das einzige was mich nervt ist das die Batchdatei selber auch in einen anderen Ordner verschoben wird. Wie kann ich das vermeiden?

Hier mal der Code
For /F "Tokens=*" %%i IN ('Dir /B *.*') do MD "%%~ni"|move "%%~i" "%%~ni\%%~i"


Danke Euch
0

Anzeige



#2 Mitglied ist offline   mephistolino 

  • Gruppe: aktive Mitglieder
  • Beiträge: 469
  • Beigetreten: 17. September 10
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 30. März 2015 - 09:30

moin :)

wie wäre es denn (ganz vereinfacht gesagt), wenn du das batch von einer anderen stelle aus aufrufst, oder aber den root-ordner, AB welchem die verarbeitung stattfinden soll, im batch direkt oder aber per argument mitgibst?

Dieser Beitrag wurde von mephistolino bearbeitet: 30. März 2015 - 09:30

0

#3 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. März 2015 - 11:05

Und falls das nicht gehen sollte, müßtest Du den Pipemißbrauch sein lassen und dann einfach auf Dateinamen prüfen:

...
for ... in (...) do @(
 if not "%~i"=="%~0" (
  md "%%~ni"
  move "%%~i" "%%~ni\%%~i"
 )
)



Allerdings wäre es tatsächlich die bessere Option, die Batchdatei selber dort rauszuhalten und sich stattdessen auf den aktuellen Ordner (%CD% oder .) bzw auf den per Parameter übergebenen Pfad zu beziehen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#4 Mitglied ist offline   Horst86 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 30. März 15
  • Reputation: 0

geschrieben 30. März 2015 - 18:43

Nabend,

leider muss ich zugeben das ich diese Codezeile nur per Google gefunden habe und selber eigentlich gar keine Ahnung von Batch habe. Aus diesem Grund bin ich wirklich auf eure Untersützung angewiesen :imao: Ich hätte auch noch einen Erweiterungswunsch wenn das nicht zu viel verlangt ist :rolleyes:

Momentan sieht so meine Ordner Struktur aus:

/irgendwas/Ordner1

im Ordner1 liegen die ganzen Dateien und zusätzlich die Batchdatei. Wenn ich alles ausführe landet halt alles in dem Ordner1.

Wenn ich das richtig verstehe muss die Batch in den Ordner /irgendwas um von da aus die Dateien in /irgendwas/Ordner1 zu verarbeiten. Ist es machbar die Dateien bzw die fertigen Ordner in einen eigenen "fertig" Ordner zu verschieben?

Also Quasi so:

/irgendwas {hier liegt die Batchdatei}
/irgendwas/Ordner1/testdatei.bla {Quellordner/Quelldatei}
/irgendwas/Ordner2/testdatei/testdatei.bla {Zielordner}

Schonmal tausend Dank für die Unterstützung
0

#5 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 30. März 2015 - 19:47

Naja, wenn ich so drüberschaue, ist das Script auch unnötig kompliziert.

Wie wär's denn mit sowas (nicht geprüft):

@echo off
SETLOCAL

SET pfad="%~1"

IF EXIST "%pfad%\NUL" (

  FOR %n in ("%pfad%\*") do @(
   IF NOT EXIST "%pfad%\%~nn" MD "%pfad%\%~nn"
   MOVE "%pfad%\%~n" "%pfad%\%~nn"
  )

) ELSE (
echo Pfad "%pfad%" existiert nicht.
)



Der Stammpfad mit den fraglichen Dateien darin müßte dann als Parameter übergeben werden und das Batchscript selber könnte irgendwo in den Systempfad verschoben werden.

Dieser Beitrag wurde von RalphS bearbeitet: 30. März 2015 - 19:48

"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#6 Mitglied ist offline   Horst86 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 30. März 15
  • Reputation: 0

geschrieben 31. März 2015 - 19:05

hey super danke dir.

Werde ich mal testen
0

Thema verteilen:


Seite 1 von 1

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