Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
Kommentar vom Moderator Biber am 07.09.2009 um 12:41:02 Uhr
einem Verzeichnis umbennen
Set /a rgc+=1
--> #612
...umzubennenen. Leider reichen meine Batch-Kenntnisse
Set /a rgc+=1
--> #613
GELÖST

Batch Rename Problem

Frage Entwicklung Batch & Shell

Mitglied: E2EK1EL

E2EK1EL (Level 1) - Jetzt verbinden

07.09.2009, aktualisiert 18.10.2012, 4710 Aufrufe, 12 Kommentare

Hallo,
ich habe Probleme mit dem rename-Befehl.

Ich würde gerne alle Dateien in einem Verzeichnis umbennen. Dies scheint aber nicht mit dem Rename-Befehl möglich zu sein.

XXX_de_.htm in XXX_00.htm

dies hatte ich versucht über

01.
ren *_de_.htm *_00.htm
umzubennenen. Leider reichen meine Batch-Kenntnisse nicht für eine for-Schleife aus.
Das Problem ist das diese Dateien nicht nur einmalig umbennant werden müssen, dies muss also als Batch-Programm möglich
sein.
Mitglied: Woolfsmann
07.09.2009, aktualisiert 18.10.2012
Hi,

wurde hier schon oft besprochen, ich hab nicht so ganz genau reingeguckt aber z.b. http://www.administrator.de/forum/string-aus-dateinamen-abfragen-und-%c ... hört sich passend an

gruß
Bitte warten ..
Mitglied: E2EK1EL
07.09.2009 um 13:11 Uhr
Vielen Dank,
hatte tatsächlich diesen Post schon gesehen und damit probiert es zu lösen, wie gesagt meine Kenntnisse sind beschränkt...

01.
@echo off & setlocal 
02.
set "Dateien=H:\bw-export\*_de_.htm" 
03.
 
04.
 
05.
for /f "delims=" %%i in ("%Dateien%") do call :ProcessFile "%%i" 
06.
goto :eof 
07.
 
08.
:ProcessFile 
09.
set "T1=_00" 
10.
 
11.
ren %1 "%T1" 
12.
goto :eof
Bitte warten ..
Mitglied: Biber
07.09.2009 um 13:34 Uhr
Moin E2EK1EL,

angenommen, die bisherigen Quell-Dateinamen enthalten als ersten Unterstrich im Namen den vor dem Suffix "_de".
01.
@echo off & setlocal 
02.
set "Dateien=H:\bw-export\*_de_.htm" 
03.
   
04.
for /f "delims=" %%i in ("%Dateien%") do call :ProcessFile "%%i" 
05.
goto :eof 
06.
  
07.
:ProcessFile 
08.
FOR /F "delims=_" %%a in ("%~n1") DO ren "%~1" "%%a_00.htm" 
09.
goto :eof
[ungetestet]

Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
07.09.2009 um 13:36 Uhr
Hi E2EK1EL,

das in dem rename kommt daher, weil

*_00.htm
den letztzen Unterstrich in der Originaldatei sucht und alles was davor steht als preName Auflöst.
wenn kein Unterstrich gefunden wird, wird der Komplette Name Aufgelöst.

also auch noch _de in den preName-Teil einfügt.

daher hat Dein rename in etwa so umbenannt
*_de_00.htm

Gruß Phil
Bitte warten ..
Mitglied: pieh-ejdsch
07.09.2009 um 13:48 Uhr
da würde ich es doch so machen wenn Die anzahl U-striche mehr ist.

01.
@echo off & setlocal 
02.
set "Dateien=H:\bw-export\*_de_.htm" 
03.
   
04.
for /f "delims=" %%i in ("%Dateien%") do set "name=%%i" call :ProcessFile 
05.
goto :eof 
06.
  
07.
:ProcessFile 
08.
ren "%name%" "%name:de_.htm=%00.htm"
Bitte warten ..
Mitglied: E2EK1EL
07.09.2009 um 13:51 Uhr
Danke Biber,

es funktioniert aber leider nur für eine Datei pro Aufruf.

Alls fehler bekomme ich nach dem Aufruf für jede Datei diese Meldung:

"Dateiname existiert bereits, oder die Datei
konnte nicht gefunden werden."

Was bedeutet das "%~n1"
01.
FOR /F "delims=_" %%a in ("%~n1") DO ren "%~1" "%%a_00.htm" 
Bitte warten ..
Mitglied: E2EK1EL
07.09.2009 um 13:55 Uhr
Das ist einleuchtend! Danke.. habe mir sowas dann schon gedacht.

Zu deinem Beispiel-Code muss sagen das er gar nicht tut und auch keine Fehlermeldung ausgibt...
Bitte warten ..
Mitglied: pieh-ejdsch
07.09.2009 um 14:08 Uhr
ahhh der bring bestimmt einen syntaxfehler und das & vor dem Call fehlt - sorry

01.
@echo off & setlocal 
02.
set "Dateien=H:\bw-export\*_de_.htm" 
03.
   
04.
for /f "delims=" %%i in ("%Dateien%") do (set "name=%%i" & set "um=%%~nxi" & call :ProcessFile ) 
05.
goto :eof 
06.
  
07.
:ProcessFile 
08.
if not exist "%name:de_.htm=%de_.htm" goto :eof 
09.
ren "%name%" "%um:de_.htm=%00.htm"
diesmal kannste die Batch auch mehrmals ausführen falls neue Dateien dazukommen.
Bitte warten ..
Mitglied: E2EK1EL
07.09.2009 um 14:16 Uhr
diesmal kannste die Batch auch mehrmals ausführen falls neue
Dateien dazukommen.

Jetzt habe ich zwei Varianten

Leider funktioniert es auch nur zur hälfte, es benennt eine Datei richtig um, danach kommt wieder die gleiche Fehlermeldung:

Dateiname existiert bereits, oder die Datei
konnte nicht gefunden werden.


für jede weitere vorhandene Datei!


Vielen Dank für deine schnelle Hilfe!
Bitte warten ..
Mitglied: pieh-ejdsch
07.09.2009 um 14:24 Uhr
oh - liegt warscheinlich daran, dass heut Montag ist

01.
@echo off & setlocal 
02.
pushD "H:\bw-export" 
03.
 
04.
for /f "delims=" %%i in ('dir /b "*_de_.htm"') do (set "name=%%i" & call :ProcessFile ) 
05.
popD 
06.
goto :eof 
07.
 
08.
:ProcessFile 
09.
ren "%name%" "%name:de_.htm=%00.htm"
mal jetzt fürs Verzeichnis
Bitte warten ..
Mitglied: E2EK1EL
07.09.2009 um 14:30 Uhr
Habe grade versucht es über ein copy oder move befehl selbst hinzukriegen, geklappt hat es aber nicht!

Vielen Dank für deine Hilfe. Chapeau!

Ich versuche gerade nur noch deinen Code zu verstehen...
Bitte warten ..
Mitglied: pieh-ejdsch
07.09.2009, aktualisiert 18.10.2012
01. setlocal = ausfühliche Erklärung im Tutorial Batch Umgebungsvariablen
02. pushD = setze den aktuellen Pfad und merke den alten

04. for = ist eine ForSchleife vllt mach ich da mal en TUT

05. popD = komm wieder in den alten pfad zurück

06. goto :eof = Beende die Aktuelle Routine

09. findest Du auch antworten für UmgebungsVariablen im TUT

Gruß Phil
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Altebekanntes Batch umlaute Problem (txt editor) (2)

Frage von Ritrivia zum Thema Batch & Shell ...

Batch & Shell
gelöst Grosses Variablen Problem ( Batch) (30)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...