Desktop
Mobile

Spezielles bat-command gesucht

Samun

Cadet 4th Year
Registriert
Feb. 2018
Beiträge
109
Hi Leute,

ich brauche ein Bat-File für eine spezielle Aufgabe, aber ich vermute dass das, was ich vorhabe, nicht geht. Ihr müsst mir keine Alternative empfehlen (es sei denn es ist eine andere Art von Script, das genauso funktioniert). Ja, ich hoffe ihr könnt mir helfen oder mir schlicht sagen "nee, geht nicht".

Ich droppe ein bat-file in einen Ordner ohne spezifische Adresse. Das gleiche File muss in jedem beliebigen Ordner funktionieren. Vom Mainfolder aus gestartet, muss es sich die Information holen welche Dateien (Name des Files) in einem bestimmten anderen Ordner liegen, und genau diese Files müssen aus einem anderen Ordner gelöscht werden. In diesem Fall dem Main-Ordner.

Also ungefähr sowas:

remove ".\FolderB\all files" from ".\"

Ich habe noch nie gehört, dass sowas geht (aber das heisst nicht viel). Es gibt viele Tools, die das können, aber das ist zuviel Arbeit. Die Frage ist nur ob ich 150 mal in einen Ordner gehe, alle Dateien mit StrgZ markiere, in den anderen Ordner ziehe, und während die immer noch markiert sind, delete. Das kann ich machen, aber dabei gehen viele Gehirnzellen verloren. ;) Ausserdem würde ich das zukünftig vielleicht auch mal wieder nutzen.
 
Also eine Batchdatei in ein Verzeichnis zu "droppen" macht erstmal gar nix.. Allerdings verstehe ich nicht was du machen willst.. Was soll die Zeile
Samun schrieb:
remove ".\FolderB\all files" from ".\"
bewirken?
 
Schon mal probiert die oben formulierte Frage in ein LLM der Wahl zu werfen? google KI-Modus meinte grad direkt "no Problemo, hier haste.."

will jetzt aber auch nicht ungefragt meat proxy spielen...
 
  • Gefällt mir
Reaktionen: DiedMatrix, Micha- und Hans-juergen
So ganz verstehe ich deine Problemstellung noch nicht.
Strg + Z markieren? Meinst du Strg + A? dann verschieben und danach löschen??

Ich glaube, ein Beispiel könnte nicht schaden, wie es aussieht und was das genaue Ziel ist...
 
Unter Windows? Dann wäre ein Del "C:\ /s Dateiname.Suffix" das gesuchte Kommando. Das löscht durch den Parmeter /s von C:\ ausgehend in jedem Unterordner die genannte Datei.
 
  • Gefällt mir
Reaktionen: DJMadMax
Samun schrieb:
alle Dateien mit StrgZ markiere, in den anderen Ordner ziehe, und während die immer noch markiert sind, delete.
Für mich hört sich das so an, als ob du Dateien in einen anderen Ordner kopieren und dann die Ursprungsdateien löschen willst.

"Strg+Z" ist übrigens "rückgängig" und nicht "alle markieren". Das ist "Strg+A".

Leider kann ich keine vernünftigen Makros programmieren, aber ich würde eher über "ausschneiden" und "einfügen" gehen.
 
Ausserdem kann man statt "kopieren + delete" auch einfach verschieben machen... in einem Wisch.
 
  • Gefällt mir
Reaktionen: 00Julius
Keine Ahnung, ich habe noch nie eine KI was gefragt.

Aber ich sehe, dass ich konkreter hätte werden müssen. Und ja, ich meinte STRG-A, Argh ;)

Also, ich habe

Ordner1
Ordner2
Ordner3
Ordner4
Ordner5

In jedem dieser Ordner ist ein Unterordner, die Unterordner heissen alle gleich, aber die Namen der Dateien sind immer andere.

Also

Ordner1
- Subfolder4711
File 345345
File 99457
File 34kldgf

Ordner2
- Subfolder4711
File ß090sdj
File hhjhjsd4
File 4998dsf

Diese Dateien aus den Subfoldern, sind eben auch im Mainfolder (Ordner1, etc...) und müssen da entfernt werden. Ich bräuchte also ein batfile in Ordner1 und Ordner2 (und so weiter) und wenn das executed wird, dann schaut es welche Files in ihren eigenen Subfoldern4711 sind, und die removed es dann vom Hauptfolder.

Ich kann hier keine festen Adressen in diesen batfiles eingeben, das wäre viel mehr Arbeit, als das manuell zu machen.
 
Samun schrieb:
Die Frage ist nur ob ich 150 mal in einen Ordner gehe, alle Dateien mit StrgZ markiere, in den anderen Ordner ziehe, und während die immer noch markiert sind, delete.
du meinst bestimmt strg+a.
unter windows kann man markierte dateien per maus mit drag und drop verschieben oder kopieren.
dazu ggf. die strg taste während des verschiebens gedrückt halten/loslassen.
im falle des verschiebens werden automatisch die dateien aus dem alten ordner gelöscht.
ist eigentlich windows grundwissen, das hat schon vor ü30 jahren so funktioniert.
 
Nee, es ist anders herum. Ich kopierte Dateien aus einem Ordner in einen anderen und muss das jetzt rückgängig machen. Da fängt das Problem an, denn ja, das ist echt Grundwissen was Du da beschreibst ;)
 
  • Gefällt mir
Reaktionen: Elektrolyt
Er braucht halt eine Konstante, die er verwenden kann. Wenns keine gibt, dann muss er alle Ordner händisch durchgehen und manuell löschen.
 
  • Gefällt mir
Reaktionen: Elektrolyt
Die Konstante gibt es halt bei bat-files. Ich kann zum Beispiel auf die von mir gewünschte Weise kopieren.

copy ".\Subfolder4711\Stern.Stern" ".\"

So werden alle Dateien aus dem Subfolder4711 ins Hauptverzeichnis kopiert. Da braucht man keine festen Adressen. Funktioniert in jedem Ordner, der einen Subfolder mit diesem Namen hat.

Hmmm... wie würde man das denn mit einer Exe machen?
 
Zuletzt bearbeitet:
Du willst doch was löschen und zwar aus allen Unterordern - jetzt ist es plötzich eine nur .exe. Also verwendest Du "Del C:\ /s /f Zeichenfolge.Zeichenfolge oder eben ., wenn die Dateiendung immer gleich ist. Lass Dir halt nicht alles aus der Nase ziehen. Wenn es ein Muster gibt, dann musst Du das in diesem String verwenden, um den Befehl darauf aufzubauen. Gibt es mehrere zutreffende Muster, muss das eben in ein Array eingebaut werden, damit der Löschbefehl alle Muster abarbeitet.
 
@00Julius Ich hab da mal was auf die Schnelle in Freepascal gemacht. Erstmal nur zum Auflisten der Dateien die gelöscht werden sollen. Wenn du willst lass ich dir das zukommen. Per Mail oder so.
 
Du willst doch was löschen und zwar aus allen Unterordern

Ich kann mich offenbar nicht so richtig verständlich machen, tut mir leid. ;) Es ist egal ob Unterordner oder nicht, es geht auch einfach mit Ordner A und Ordner B. Ich habe etwas von A nach B kopiert und das muss jetzt rückgängig gemacht werden, ohne dass ich Adressen oder Dateinamen eintragen muss. Manuell geht das sehr einfach, aber dauert und ist doof.

Ich brauche ganz einfach nur die "Remove"-Version von

copy ".\FolderA\Stern.Stern" ".\FolderB"

Dieser Befehl kopiert alle Dateien von Folder A nach Folder B. Das muss rückgängig gemacht werden, wobei andere Dateien in Folder B nicht angetastet werden dürfen.

Bei mir bestätigt sich aber langsam die Vermutung, dass das halt nicht geht, sonst hätte es ja schon jemand gesagt.
 
Sorry aber das passt nicht zu deiner Aussage in #8. Den Befehl den du in #17 beschreibst kopiert die Dateien aus SubFolderA nach SubFolderB.. nicht andersrum.. und auch nicht von MainFolder (das wäre .\) nach SubFolder

Das was du jn #8 beschrieben hast erfordert den Befehl
PowerShell:
copy .\SubFolder\*.*  .\

Was denn nun?
 
@Merlin352 Naja, ich konnte mich halt nicht verständlich machen und habe es dann nochmal anders versucht. Es ist im Grunde aber auch egal. Ist mir erst später aufgefallen, dass ich alles viel zu kompliziert geschrieben habe. Da sind einfach zwei Folder und die Dateien in dem einen Folder müssen aus dem anderen gelöscht werden.

Ich setze das einfach nochmal ganz neu auf

FolderA
-File1
-File2

FolderB
-File2

Ich brauche einen einfachen Befehl, um auszulesen was in FolderB ist und das wird dann aus Folder A entfernt. Ohne Filenamen oder Ordneradressen einzugeben. Am Ende sähe das so aus:

FolderA
-File1

FolderB
-File2

Tatsächlich wäre FolderB ein Unterordner von FolderA. Und der ursprüngliche Befehl hätte gelautet:

copy ".\FolderB\Stern.Stern" ".\"

Das müsste nun auf die gleiche Art und Weise rückgängig gemacht werden.
 

Ähnliche Themen

Zurück
Oben