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, 788 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PS-Skript anhand Dateinamen und zusätzlich Dateityp (Mapping) verschieben (2)

Frage von cleverm zum Thema Batch & Shell ...

Windows Server
DHCP-Server vor Änderung schützen (1)

Frage von cuilster zum Thema Windows Server ...

Windows Server
gelöst Skript per GPO ausführen - Berechtigungen? (13)

Frage von honeybee zum Thema Windows Server ...

Windows Server
gelöst Änderung eines Registryeintrages per GPO (15)

Frage von honeybee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...