Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dateistring umbenennen

Mitglied: chainsaw

chainsaw (Level 1) - Jetzt verbinden

13.03.2009, aktualisiert 16.03.2009, 3231 Aufrufe, 5 Kommentare

Hallo Gemeinde,

Ich möchte einen beliebigen String aus mehreren Dateien abfragen und diesen durch einen neuen ersetzten.
Das mache ich mit diesem Skript:

@echo off
set /p laufvar=Laufwerksbuchstabe angeben:
set /p verzvar=Ordner angeben:
if exist %laufvar%:\%verzvar% goto :los
if not exist %laufvar%:\%verzvar% goto :meldung
goto end

:los
cd %laufvar%:\%verzvar%
setlocal enabledelayedexpansion
set /p oldstr=Welcher String soll ersetzt werden?:
set /p newstr=Neuen String eingeben:
for %%i in (*%oldstr%*.*) do set x=%%i&ren "%%i" "!x:%oldstr%=%newstr%!"

Das funktioniert wunderbar - aber nur wenn ich Dateien auf der gleichen Festplattenpartition umbenennen möchte, auf der der Batch liegt.
Wähle ich ein anderes Laufwerk aus oder versuche Daten auf einem Netzlaufwerk umzubenennen, dann passiert gar nix.
Eine Fehlermeldung gibts auch nicht.
Kann das am setlocal Befehl liegen?
Vielleicht habt ihr eine Idee.

Schönes Wochenende
Gruß chainsaw
Mitglied: bastla
13.03.2009 um 15:23 Uhr
Hallo chainsaw!

Falls Du bei der Methode mit "cd" bleiben willst, wäre zumindest noch ein zusätzliches "/d" anzuraten - also:
cd /d %laufvar%:\%verzvar%
Die "setlocal"-Zeile wäre übrigens gleich am Anfang des Batches besser platziert (damit keine Variablen-Leichen nach dem Ende des Batches übrig bleiben).

Grüße
bastla
Bitte warten ..
Mitglied: chainsaw
16.03.2009 um 09:59 Uhr
Hallo bastla,

Du bist genial - jetzt funktioniert`s. Kleiner Parameter, große Wirkung!

Nur noch zwei kleine Zwischenfragen:
Du schreibst "falls du bei "cd" bleiben willst...
Was wäre die (bessere?) Alternative - chdir?

Elegant wäre jetzt, einen Pfad in einer .ini-Datei zu hinterlegen, und diesen dann im Batch zu verwenden.
Ih hab das versucht - leider auch nur mit Teilerfolg:

1) @echo off
2) setlocal enabledelayedexpansion
3)
4) for /F "Tokens=*" %%i in (rename.ini) do call :los "%%i"
5) :Los
6) echo Im Verzeichnis %1 wird umbenannt:
7) cd /d "%1"
8) set /p oldstr=Welcher String soll ersetzt werden?:
9) set /p newstr=Neuen String eingeben:
10) for %%i in (*%oldstr%*.*) do set x=%%i&ren "%%i" "!x:%oldstr%=%newstr%!"
11)
12) :End

Das haut hin, Zeile 6 zeigt an, dass er im Verzeichnis C:\temp umbenennt, wie in der ini hinterlegt. Aber nach dem Umbenennen beginnt der Batch von neuem, zeigt aber keine Variable mehr an.
Bei Zeile 6 heitß es dann: "Im verzeichnis wird umbenannt:"
Ich kann dann weiterhin umbenennen und erst dann beendet sich der Batch.
Verträgt sich hier das %%i in den beiden Schleifen nicht?

Schönen Tag und vielen Dank
Gruß chainsaw
Bitte warten ..
Mitglied: Biber
16.03.2009 um 11:28 Uhr
Moin chainsaw,

Du schreibst "falls du bei "cd" bleiben willst...
Was wäre die (bessere?) Alternative - chdir?
Das wäre ein ähnlicher Kalauer wie "Helmut statt Helmut" im Bundeskanzlerwahlkampfduell Schmidt vs. Kohl.
Eine echte Alternative (also fürs CD /D) wäre das Gespann PushD / PopD zum zum rekonstuierbaren Lw/Verzeichniswechsel. Siehe PushD /? und PopD /?

Elegant wäre jetzt, einen Pfad in einer .ini-Datei zu hinterlegen, ....
01.
@echo off  & setlocal enabledelayedexpansion 
02.
 
03.
for /F "Delims=" %%i in (rename.ini) do call :los "%%i"  
04.
::----- hier ist der Batch logisch zu Ende. 
05.
:: ----da aber noch Codezeilen folgen, muss hier ein "goto :eof" stehen 
06.
GoTo :eof 
07.
::----- hier ist der Batch auch für die Cmd.exe zu Ende. 
08.
 
09.
 :Los 
10.
echo Im Verzeichnis %1 wird umbenannt: 
11.
.... 
12.
::..... usw... 
13.
goto :eof
Grüße
Biber
Bitte warten ..
Mitglied: bastla
16.03.2009 um 11:45 Uhr
Hallo chainsaw!
Du schreibst "falls du bei "cd" bleiben willst...
Was wäre die (bessere?) Alternative - chdir?
Du könntest den Wechsel des Verzeichnisses durch die Verwendung eines vollständigen Pfades einsparen:
for %%i in ("%laufvar%:\%verzvar%\*%oldstr%*.*") do set "x=%%~nxi"&ren "%%i" "!x:%oldstr%=%newstr%!"
Grüße
bastla
Bitte warten ..
Mitglied: chainsaw
16.03.2009 um 11:53 Uhr
Hallo Biber

Das wäre ein ähnlicher Kalauer wie "Helmut statt
Helmut" im Bundeskanzlerwahlkampfduell Schmidt vs. Kohl.

Ich bin ja noch lernfähig (das rede ich mir jedenfalls selbst immer wieder ein)

Das habe ich mittlerweile ergurgelt:

set /p varname=<rename.ini

funktioniert auch.

Danke dir, Beitrag gelöst

Gruß und schöne Woche
chainsaw
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateien Umbenennen
gelöst Frage von PLBot85Batch & Shell6 Kommentare

Hi, ich habe einen Ordner wo mehrer Dateien drin liegen. 20150316_121757_92636382965528_WMA1847GK62_TDOBB112.ddd 20150314_085730_73826383950256_WMA18263926_TDOBB236.ddd etc Die sollen jetzt mittels einer Batchdatei ...

Batch & Shell

Umbenennen von Ordnernamen (anhand von Zeitstempel)

gelöst Frage von Zero90Batch & Shell7 Kommentare

Hallo, Es ist mal wieder so weit. Ich brauch wieder mal eure Hilfe. Momentan versuche ich eine Batch zu ...

Batch & Shell

Dateien verschieben und umbenennen

gelöst Frage von eazy-isiBatch & Shell12 Kommentare

Hallo zusammen, ich stehe vor folgender Herausforderung. Ich muss aus einem Verzeichnis Dateien in ein anderes Verzeichnis verschieben und ...

Viren und Trojaner

WannaCry - wiederhergestellte Dateien umbenennen

Frage von MasterPhilViren und Trojaner7 Kommentare

Hallo Zusammen, ich habe hier einen mit WannaCry verschlüsselten PC - die Dateien sind soweit wieder da und auch ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 6 StundenHumor (lol)1 Kommentar

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 18 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 19 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 22 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...