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 19.11.2014 um 18:55:47 Uhr
Das Hochladen bekomme ich skriptmäßig selbst in Griff, aber das Datum auslesen und umbennen... das ist das Problem.

set /a rgc+=1
#896

Bist nicht der Erste hier, der Probleme mit dem Umbennen hat...
GELÖST

Skript für Änderung Dateinamen

Frage Entwicklung Batch & Shell

Mitglied: charly74

charly74 (Level 1) - Jetzt verbinden

11.11.2014, aktualisiert 12.11.2014, 803 Aufrufe, 3 Kommentare

Hallo,

ich bin Lehrer einer Schule und erstelle den täglichen Vertretungsplan, der auf die Schulhomepage ausgegeben werden soll. Mangels eigener Kenntnisse wollte ich um Hilfe bei der Erstellung eines Skripts fragen. Folgendes Problem habe ich: Meine Dateien heißen derzeit z. B. lehrerplan_vom_10-11-2014.htm, lehrerplan_vom_11-11-2014.htm bzw. schuelerplan_vom_10-11-2014.htm, schuelerplan_vom_10-11-2014.htm usw.
Ich möchte innerhalb einer Batch-Datei ein Umbenennen erreichen in lehrerplan_mo.htm, schuelerplan_mo.html oder eben auch lehrerplan_di.htm, schuelerplan_di.html, d.h. das Skript müsste Teile des Dateinamens auslesen, erkennen um welches Datum es sich innerhalb des Dateinamens handelt, diesem den korrekten Wochentag zuordnen und anschließend umbenennen.
Anschließend möchte ich die veränderten Dateien auf den Webserver hochladen wo automatisch Verlinkungen "Montag", "Dienstag" usw. greifen.

Das Hochladen bekomme ich skriptmäßig selbst in Griff, aber das Datum auslesen und umbennen... das ist das Problem.

Könnte mir dabei jemand helfen bzw. ein paar Codezeilen schicken, die das leisten?
Ich bedanke ich schon vorab für jede Hilfe!!!

Charly
Mitglied: colinardo
LÖSUNG 11.11.2014, aktualisiert 12.11.2014
Hallo Charly, Willkommen auf Administrator.de!
Das könntest du so mit einem VBS-File so lösen:
Das hier benennt alle *.htm|*.html-Dateien nach deinem Muster eines angegebenen Ordners entsprechend nach deinen Angaben um:
01.
Const ORDNER = "C:\schulplaene" 
02.
Dim fso,regex,arrParts,strNewName,file,strNewPath 
03.
Set fso = CreateObject("Scripting.Filesystemobject") 
04.
Set regex = CreateObject("vbscript.regexp") 
05.
regex.Pattern = "^(.+)_.+_(\d{1,2}-\d{1,2}-\d{4})\.(htm|html)$" 
06.
regex.IgnoreCase = True 
07.
For Each file In fso.GetFolder(ORDNER).Files 
08.
	Set match = regex.Execute(file.Name) 
09.
	If match.Count > 0 Then 
10.
		strNewName = match(0).Submatches(0) & "_" & WeekdayName(Weekday(CDate(match(0).Submatches(1))),True) & "." & match(0).Submatches(2) 
11.
                strNewPath =  file.ParentFolder & "\" & strNewName 
12.
                if fso.FileExists(strNewPath) then  
13.
                   fso.DeleteFile strNewPath,True 
14.
                end if 
15.
                fso.MoveFile file.Path, strNewPath 
16.
	End If 
17.
Next 
18.
Set fso = Nothing 
19.
Set regex = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: charly74
12.11.2014 um 08:59 Uhr
Hallo Uwe,

tja, ich bin echt sprachlos. DANKE!
Ich hab es gerade getestet und siehe da, es funktioniert so, wie ich mir vorgestellt habe. Nochmals: Herzlichen Dank!

Eine Kleinigkeit hätte ich noch: Beim wiedeholten Ausführen des Skripts erscheint eine Fehlermeldung, da die betreffende Datei schon vorhanden sei. Könntest Du noch eine Abfrage einbauen, falls dem eben so ist, dass die bereits vorhandene Datei (die ja zeitlich dann schon älter und in meinem Fall überholt sein muss) vor dem Umbenennen gelöscht wird?

THX.
Kann ich Dir auch etwas Gutes tun? Auf welchem Wege?

charly
Bitte warten ..
Mitglied: colinardo
12.11.2014 um 09:23 Uhr
Zitat von charly74:
tja, ich bin echt sprachlos. DANKE!
Ich hab es gerade getestet und siehe da, es funktioniert so, wie ich mir vorgestellt habe. Nochmals: Herzlichen Dank!
keine Ursache
Eine Kleinigkeit hätte ich noch: Beim wiedeholten Ausführen des Skripts erscheint eine Fehlermeldung, da die betreffende
Datei schon vorhanden sei. Könntest Du noch eine Abfrage einbauen, falls dem eben so ist, dass die bereits vorhandene Datei
(die ja zeitlich dann schon älter und in meinem Fall überholt sein muss) vor dem Umbenennen gelöscht wird?
Ist oben eingebaut
THX.
Kann ich Dir auch etwas Gutes tun? Auf welchem Wege?
mit einem virtuellen Kaffee oder wenn du unbedingt willst mit einer kleinen Spende

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Skript für doppelte Dateinamen (1)

Frage von janelsaesser zum Thema Batch & Shell ...

Mac OS X
gelöst MacOS - Skript beim Anmelden und Abmelden eines Benutzers ausführen (26)

Frage von BlueStarDE zum Thema Mac OS X ...

Entwicklung
gelöst Grafische Darstellung - Fortschrittsanzeige VBS Skript (7)

Frage von Komoran12 zum Thema Entwicklung ...

Neue Wissensbeiträge
Rechtliche Fragen

Heiseshow, live ab 12 Uhr: Steht die Vorratsdatenspeicherung vor dem Aus?

Tipp von sabines zum Thema Rechtliche Fragen ...

Outlook & Mail

Outlook Probleme nach Juni Updates - KB3203467 ist Schuld

(1)

Information von Deepsys zum Thema Outlook & Mail ...

Microsoft Office

Windows 7, Office 2016 RTM und Updates ohne WSUS

Tipp von chgorges zum Thema Microsoft Office ...

E-Mail

Thunderbird 52 hat Druckprobleme

(3)

Tipp von magicteddy zum Thema E-Mail ...

Heiß diskutierte Inhalte
Server-Hardware
Einem Stromausfall entgegen wirken (22)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

DSL, VDSL
gelöst Ständige Störungen - Internet (12)

Frage von gamerff zum Thema DSL, VDSL ...