PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Batch Dateiennamen suchen?



Bi0sh0k
18.03.2016, 07:50
Hallo Fh'ler,

folgendes möchte ich in Batch umsetzten.
Ich möchte ein Algorithmus erstellen der in einem Ordner nach Dateien mit zu Beispiel einer sechsteiligen Nummer sucht am Anfang des Namens. Der Rest des Namens der Dateien ist unwichtig. Wenn Dateien gefunden worden soll er diese in einen anderen Ordner kopieren. Hab per google danach geschaut, allerdings nur Skripte gefunden die in den Dateien suchen. Kann da jemand weiterhelfen? Die Umbenennung hab ich bereits realisiert und das einfache kopieren einer Datei.

Cystasy
18.03.2016, 09:03
Hallo Fh'ler,

folgendes möchte ich in Batch umsetzten.
Ich möchte ein Algorithmus erstellen der in einem Ordner nach Dateien mit zu Beispiel einer sechsteiligen Nummer sucht am Anfang des Namens. Der Rest des Namens der Dateien ist unwichtig. Wenn Dateien gefunden worden soll er diese in einen anderen Ordner kopieren. Hab per google danach geschaut, allerdings nur Skripte gefunden die in den Dateien suchen. Kann da jemand weiterhelfen? Die Umbenennung hab ich bereits realisiert und das einfache kopieren einer Datei.

Also ich hoffe das ichs jetzt nicht falsch verstanden habe.. aber ich glaube ich habs kapiert was du meinst.

Also, Beispiel.. du suchst nach Dateien die mit "1337" beginnen.. Beispielweise "1337_File123.txt", "1337_Batchtest.txt" dann kannst du die jeweilige Datei so auswählen ->



copy 1337*.txt /leet/


daraufhin sollten alle Dateien die mit 1337 beginnen und die Dateiendung .txt haben in den Ordner leet kopiert werden (muss schon bestehen).
Ob die Parameter vom copy Befehl 100% stimmen weiß ich grad allerdings nicht da es schon etliche Jahre her ist wo ichs benutzt habe^^

Kurz: einfach ein * anhängen an Dateinamen wo du nicht weißt was an dieser Stelle im Dateiname steht. Damit kannst du dann die einzelnen Files wählen.

grüße

Bi0sh0k
18.03.2016, 09:23
Top hat geklappt. Hab mal wieder zu kompliziert gedacht. ;)
Die Frage ist jetzt nur wie benenne ich beide Datein um? Mit Move klappt es leider nicht mehr. Und da die Dateien ja den selben Namen haben müssen diese auch nummeriert werden. Das mit der Nummerierung bekomm ich denk ich mal noch hin. Wichtig ist nur das die kopierten Dateien umbenannt werden. Dateien die schon im Ordner waren sollen unberührt bleiben.

Cystasy
18.03.2016, 10:20
Top hat geklappt. Hab mal wieder zu kompliziert gedacht. ;)
Die Frage ist jetzt nur wie benenne ich beide Datein um? Mit Move klappt es leider nicht mehr. Und da die Dateien ja den selben Namen haben müssen diese auch nummeriert werden. Das mit der Nummerierung bekomm ich denk ich mal noch hin. Wichtig ist nur das die kopierten Dateien umbenannt werden. Dateien die schon im Ordner waren sollen unberührt bleiben.

Naja, du könntest %random% testen.. ergibt dann eine Random Zahl = du kannst Dateien mit Random Werten umbenennen.
Gibt auch die Möglichkeit das Datum, Uhrzeit usw zu wählen anstelle einer Zufallszahl.
Bei Batch gabs soweit ich weiß auch Befehle mit denen du schauen kannst ob eine Datei schon im Ordner existiert.. müsstest du mal schauen.

grüße

Bi0sh0k
18.03.2016, 10:31
Ich hab mir überlegt, man könnte diese Dateien in einen Zwischenordner kopieren. Dann könnte man sich den Inhalt des Ordners ausgeben lassen. An diesem Punkt müsste man irgendwie die aktuellen Namen der kopierten Dateien in einer Variable speichern. Dann beide Dateien umbenennen und dann erst dort einfügen wo sie eigentlich hinkopiert werden sollen. Einzige Frage die offen bleibt: Kann man sich den Inhalt des Ordners mit DIR ausgeben lassen und die Dateinamen in einer bzw mehreren Variablen je nach Dateianzahl speicher um damit weiter zu arbeiten oder gibt es einen Befehl der alles in einem Ordner umbenennt?

Cystasy
18.03.2016, 10:45
Ich hab mir überlegt, man könnte diese Dateien in einen Zwischenordner kopieren. Dann könnte man sich den Inhalt des Ordners ausgeben lassen. An diesem Punkt müsste man irgendwie die aktuellen Namen der kopierten Dateien in einer Variable speichern. Dann beide Dateien umbenennen und dann erst dort einfügen wo sie eigentlich hinkopiert werden sollen. Einzige Frage die offen bleibt: Kann man sich den Inhalt des Ordners mit DIR ausgeben lassen und die Dateinamen in einer bzw mehreren Variablen je nach Dateianzahl speicher um damit weiter zu arbeiten oder gibt es einen Befehl der alles in einem Ordner umbenennt?



rename * %random%


sollte gehen um alle Dateien in einem Ordner umzubenennen^^
Bin mir nur nicht sicher ob dann alle den gleichen Random Wert bekommen, oder verschiedene.. ist ewig her wo ich Batch genutzt hatte da mans mit andern Script & Programmiersprachen schneller fertig hat^^ Kann es leider grad auch nicht testen, sorry.

grüße