lexxy
Goto Top

Newbie in Sachen Batch - einfache Rename-Datei

[Edit]Status auf Gelöst gesetzt. Biber [/Edit]

Hallo allerseits,

bin neu hier und auch in Sachen Batch ein totaler Anfänger.... was ich bräuchte, ist eine (für Eure Verhältnisse wahrscheinlich ganz ordinäre) rename Datei.

Folgende Problematik: Zwei Software-Anbieter haben sich dooferweise den selben Verschlüsselungsdienst gekauft - ergo gibt es Probs für all jene, die beide Softwareprodukte nutzen.

Das Problem liegt in zwei dll-Dateien. Also bräuchte man eine Batch-Datei, die ein Rename im hin-und-her-Verfahren ausführt umbenennen - bei erneuter Betätigung wieder zurückbenennen), damit man sich das rumwühlen im Windows-Verzeichnis sparen kann, zumal das für Anfänger (und erstrecht für den Admin face-wink )mal sowieso der Graus ist.

besagte Dateien liegen im Verzeichnis: c:/Windows/system32
Ich hab das mal probiert aufgrund eines anderen Beitrages hier und versucht etwas zusammenzuschustern - bitte lacht mich nicht aus - bin echt voller Neuling:

if exist HL_MED32.dll ren HL_MED32.dll DB_HL_MED32.dll
if exist HLSoft32.dll ren HLSoft32.dll DB_HLSoft32.dll
if exist DB_HLSoft32.dll ren DB_HLSoft32.dll HLSoft32.dll
if exist DB_HL_MED32.dll ren DB_HL_MED32.dll HL_MED32.dll

keine Ahnung, ob da ansatzweise was richtig ist ?! Die Frage ist, wie lege ich die Datei an (reicht das wirklich im Editor, als .bat speichern und Verknüpfung der bat-Datei aufs Desktop ? Was muß da sonst noch an Befehlen/Hinweisen rein, damit das Ding funzt ?

Besten Dank im voraus !
LG, Lexxy

Content-Key: 24621

Url: https://administrator.de/contentid/24621

Printed on: April 24, 2024 at 14:04 o'clock

Member: superboh
superboh Jan 27, 2006 at 04:02:02 (UTC)
Goto Top
Hi Lexxy,

die Syntax würde schon mal passen. Nur hat Du eines übersehen:

Deine 1. Zeile benennt die Datei HL_MED32.dll in DB_HL_MED32.dll um.
Wenn aber dann die 4. Zeile ausgefüphrt wird, wird eben diese Datei wieder zurück umbenannt.

Du musst über je eine temporäre Datei gehen.

Ich hab Dir mal ein entsprechnendes Script geschrieben, allerdings mit etwas übersichtlicheren Dateinamen. Du kannst das dann ja anpassen.

ren C:\Datei1_bak.txt Datei1_temp.txt
ren C:\Datei2_bak.txt Datei2_temp.txt

ren C:\Datei1.txt Datei1_bak.txt
ren C:\Datei2.txt Datei2_bak.txt

ren C:\Datei1_temp.txt Datei1.txt
ren C:\Datei2_temp.txt Datei2.txt

Das Überprüfen ob die Datei jeweils da ist, kann ausbleiben, denn es sind ja wohl immer beide (Namens-)Versionen beider Dateien vorhanden.

Im Schritt 1 wird die gerade "inaktive Datei" in eine "temporäte Datei" umbenannt.
Schritt 2 benennt die "aktive Datei" in die (jetzt ja nicht mehr vorhandene) "inaktive Datei" um.
Im Anschluss wird die "temporäre Datei" wieder zur "aktiven Datei" umbenannt.

Allerdings ... in der Form weiss der User dann halt nie, welcher Satz der Dateien gerade aktiv ist.
Und ... soweit ich das verstanden habe, greift der Rechner auf die DLL auf der Platte nur dann zu, wenn sie nicht mehr im Speicher geladen ist. Allerdings werden nicht immer alle DLLs auch beim Beenden eines Programm gleich entladen. Das heisst, wenn der User "umschalten" will, kann trotzdem noch die dann falsche DLL im Speicher aktiv sein.
Ich kann mich da aber auch irren, das kann Dir ein Programmierer besser sagen.

Und ja, eine Batch-Datei ist eine reine Text-Datei die Du mit jedem Editor erstellen kannst.

Unter Windows ab NT oder neuer kann man Batch-Dateiein auch die Endung .cmd geben. Diese funktionieren dann aber nicht unter DOS oder Win9X mit dieser Endung.
Ich ziehe diese Endung aber vor, einfach um schon am Namen zu sehen, dass es eine Batchdatei für eben diese Systeme ist.

Gruss,
Thomas
Member: Lexxy
Lexxy Jan 27, 2006 at 11:14:13 (UTC)
Goto Top
Wow ! Das ging schnell *staun*

Hallo Thomas,

lieben Dank für die schnelle Hilfe/Antwort.

*lach* - nun leuchtet mir auch ein, weshalb das im Test nicht klappte, wenn ich zeitgleich sofort um- und zurückbenannt habe....

Auch den Hinweis "wie weiß der User welche dll-Version er gerade hat" habe ich nun schlicht gelöst, in dem ich zwei Dateien angelegt habe, aus deren Namen eindeutig hervorgeht, in welche Richtung sie arbeitet ! Nun ist es für User superleicht und sie können auf Nummer sicher gehen !

Lieben Dank für den Tip mit der Endung .cmd - da habe ich doch jetzt was wirklich interessantes dazugelernt und es auch gleich umgesetzt!!!!

Klasse - bin echt total happy, daß mir hier so schnell geholfen wurde ! Allerliebsten Dank!

GLG aus München, Lexxy (Francesca)