Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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
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, 811 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 ...

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

Frage von cleverm zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mittels findstr aus einer TXT auslesehen (14)

Frage von Diamond72 zum Thema Batch & Shell ...

C und C++
Dateien in Ordner kopieren anhand vom Teil eines Dateinamen (22)

Frage von onlyforu8373 zum Thema C und C ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...