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

Dateinamen per Batch umbenennen

Frage Entwicklung Batch & Shell

Mitglied: JOML

JOML (Level 1) - Jetzt verbinden

15.10.2008, aktualisiert 17.10.2008, 6019 Aufrufe, 11 Kommentare

Hallo zusammen,

Ich möchte gerne per Script (Batch?) Datei ein File umbennenen und zwar so, dass es immer den Monat als Filenamen nimmt.

Beispiel.
"Log.txt" soll in "October08.txt" umbennent werden.

Dieses Script wir dann einmal im Monat per Task automatisch ausgeführt werden.

Vielen Dank für Eure Hilfe


Gruss
JOML
Mitglied: bastla
15.10.2008 um 17:46 Uhr
Hallo JOML!

Ist der Monat zum Zeitpunkt der Ausführung des Batches gemeint? Falls ja:
01.
@echo off & setlocal 
02.
set "Datei=D:\Logdateien\Log.txt" 
03.
 
04.
set M=%date:~-7,2% 
05.
set J=%date:~-2% 
06.
if "%M%"=="01" set Mon=January 
07.
if "%M%"=="02" set Mon=February 
08.
... 
09.
 
10.
ren "%Datei%" %Mon%%J%.*
Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.10.2008 um 18:45 Uhr
<OT>
Dateinamen per Batch umbennenen
....und zum 83sten Mal in diesem Forum die rhetorische Frage:

WTF ist bei dem Wort "umbenennen" so schwierig?
Da ist doch weder ein "tz" noch ein "ph" noch irgendetwas aus dem altgälischen oder dem marsipulamischen enthalten....
</OT>
Bitte warten ..
Mitglied: JOML
15.10.2008 um 23:54 Uhr
Hallo Bastla,

Vielen Dank!

Leider kommt immer "Syntaxfehler"..?

@echo off & setlocal

set "Datei=D:\Log.txt"
set M=%date:~-7,2%
set J=%date:~-2%

if "%M%"=="01" set Mon=January
if "%M%"=="02" set Mon=February
if "%M%"=="03" set Mon=March
if "%M%"=="04" set Mon=April
if "%M%"=="05" set Mon=May
if "%M%"=="06" set Mon=June
if "%M%"=="07" set Mon=July
if "%M%"=="08" set Mon=August
if "%M%"=="09" set Mon=September
if "%M%"=="10" set Mon=October
if "%M%"=="11" set Mon=November
if "%M%"=="12" set Mon=December


ren "%Datei%" %Mon%%J%.*
Bitte warten ..
Mitglied: bastla
16.10.2008 um 00:06 Uhr
Hallo JOML!

Habe eben Deinen geposteten Batch getestet und kann das Problem nicht nachvollziehen. Ein Fehler könnte sich zwar ergeben, wenn die Zieldatei "October08.txt" bereits existiert - allerdings würde die Meldung dann
Dateiname existiert bereits, oder die Datei 
konnte nicht gefunden werden.
lauten.

Grüße
bastla

P.S.: Verwende bitte beim Posten von Batches die Code-Formatierung ...
Bitte warten ..
Mitglied: JOML
16.10.2008 um 13:04 Uhr
Hi Bastla,

Das Script läuft auf einem 2003 Server (habs auch unter XP getestet).
Es kommt die Meldung " The syntax of the command is incorrect.".

Folgendes ist mir aufgefallen (weiss nicht ob es hilft):
Setze ich nach dem letzten "IF" ein ECHO %Datei% kommt D:\Log.txt.
Scheint ja OK zu sein...

Das gleiche mit ECHO %Mon%%J%.txt kommt 08 .txt. Wo ist der Monat..?

Gruss
JOML
Bitte warten ..
Mitglied: bastla
16.10.2008 um 15:13 Uhr
Hallo JOML!

Wie sieht denn bei Dir die Ausgabe von %date% aus? Die Zerlegung oben geht von einer (dt.) Schreibweise der Art
16.10.2008
oder (W2000)
Do 16.10.2008
aus. Der Monat wird mit 2 Zeichen ab (von rechts gezählt) der Position 7 ermittelt.

Wenn Du die Zeile 4 im Batch entsprechend anpasst, sollte der Rest funktionieren.

Grüße
bastla

P.S.: Und (bevor Du fragst): Nein, ich möchte auch in Zukunft nicht schon vorher wissen, auf welchem System in welcher Sprache ein Batch laufen soll - wo bliebe da die Spannung?
Bitte warten ..
Mitglied: Biber
16.10.2008 um 15:36 Uhr
@bastla
<OT>
da habe ich mir SOFORT als Idee notiert :
Jemand sollte mal einen kleinen Bazchschnipsel hier ins Forum stellen, der den %date%-Variablenwert sprach- und Windowsversionsunabhängig normalisiert oder besser noch: vielleicht ein kleines Tutorial zum Thema "Umgang mit Datums- und Zeitvariablen im Batch"

Dann könnten diese ### den Ordnernamen für ihre ver###ten Datensicherungen ja selber aus dem %date% rausfieseln und würden uns nicht jeden Tag wieder mit diesem ### ### auf die ### ###.

Grüße
Biber
</OT>
Bitte warten ..
Mitglied: bastla
16.10.2008 um 15:42 Uhr
@Biber

Die Idee hat was - und mit einem Titel wie etwa "Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch" bekäme das Ergebnis auch noch den internationalen Touch ...

Grüße
bastla

P.S.: Aber glaubst Du wirklich, dass ein solches Tutorial dann auch gefunden würde (selbst, wenn es unter "Anleitungen zum Thema" angeführt wäre)?
Bitte warten ..
Mitglied: JOML
16.10.2008 um 18:03 Uhr
Hi,

Na Ja.. sorry.. Hast ja recht betreffend System/Sprache info..


Das Thema Datum scheint zu stimmen:

U:\>ECHO %date%
16.10.2008

U:\>ECHO %date:~-7,2%
10

Der Syntaxfehler erscheint nach dem "ren" Befehl.
Bitte warten ..
Mitglied: Biber
16.10.2008 um 18:49 Uhr
Moin JOML,

der Syntaxfehler resultiert mit an Sicherheit grenzender Wahrscheinlichkeit an überzähligen Leerzeichen hinter dem Variablenwert der SET-Anweisungen. (trailing blanks, wie der Italianer sagt).

Beispiel: Wenn ich überzählige Leerzeichen hier darstelle durch # und Deinen Code zitiere:
01.
@echo off & setlocal#  
02.
 
03.
set "Datei=D:\Log.txt"# 
04.
set M=%date:~-7,2%# 
05.
set J=%date:~-2%# 
06.
 
07.
if "%M%"=="01" set Mon=January# 
08.
if "%M%"=="02" set Mon=February 
09.
if "%M%"=="03" set Mon=March 
10.
if "%M%"=="04" set Mon=April 
11.
if "%M%"=="05" set Mon=May 
12.
if "%M%"=="06" set Mon=June 
13.
if "%M%"=="07" set Mon=July 
14.
if "%M%"=="08" set Mon=August 
15.
if "%M%"=="09" set Mon=September 
16.
if "%M%"=="10" set Mon=October 
17.
if "%M%"=="11" set Mon=November 
18.
if "%M%"=="12" set Mon=December 
19.
 
20.
 
21.
ren "%Datei%" %Mon%%J%.*
...dann kannst Du erkennen, dass bei der Ausführung des RENAME-Befehl u.U. so etwas rauskommt:
Ren "irgendwas.xyz" January 08 .*
Das würde eventuell einen Syntaxfehler " The syntax of the command is incorrect." erklären.

Abhilfe:
a) Minimalistisch und wertlos:
Einfach den zweiten Parameter des REN in Hochkomma setzen.
--> ren "%Datei%" "%Mon%%J%.*"
Dann hat aber auch die Zieldatei manchmal Leerstellen an lustigen Stellen.
b) Bis zum nächsten Batch ausreichend:
Einmal mit dem Editor überprüfen, wo überall unabsichtlich Leerzeichen angehängt wurden und entfernen.
[diesen Fallstrick samt Workaround hast Du allerdings in zwei Wochen wieder vergessen]
c) Nachhaltig.
Gewöhn Dir an, die SET-Anweisungen so zu schreiben
set "Mon=January"
Falls Dich jemand daraufhin anspricht ("is' abba gar nicht so dokumentiert bei M$ und Computerbild") beruf Dich auf mich.

Grüße
Biber
Bitte warten ..
Mitglied: JOML
17.10.2008 um 15:42 Uhr
Hallo zusammen,

Jep.. das war's
Funktioniert jetzt bestens.

Vielen Dank für Eure Hilfe
JOML
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch - Dateinamen auslesen, umbenennen + dreistellige Zahl vor bisherigen Dateinamen setzen.
Frage von citroendsvierBatch & Shell4 Kommentare

Hallo und guten Morgen, ich möchte für drei Ordner (2011, 2013, 2014) eine Batch schreiben, die die darin enthaltenen ...

Windows Tools
Dateinamen automatisch umbenennen
Frage von chrisschmitt93Windows Tools2 Kommentare

Hallo zusammen, könnte mir freundlicherweise einer ein Skript zukommen lassen , das automatisch alle Ä in AE ,Ö ind ...

Batch & Shell
Dateinamen mit Powershell umbenennen ???
gelöst Frage von lexuraBatch & Shell2 Kommentare

Hallo, Ich benötige ein Script mit dem ich eine MP3 Sammlung umbenennen kann. Die Dateien lauten im Ursprung alle ...

Batch & Shell
Dateinamen Umbenennen nach Ersetzten
gelöst Frage von batchnewbieBatch & Shell9 Kommentare

Hallo, ich experimentiere ein wenig und bin ein einem Punkt, wo ich nicht weiter weiß. Ich lese ein Dateinamen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 4 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 5 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 19 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 23 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte15 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...