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 Mehrere Dateinamen gleichzeitig ändern per Batch oder VBS ?

Mitglied: takitano

takitano (Level 1) - Jetzt verbinden

29.09.2010, aktualisiert 11:27 Uhr, 6533 Aufrufe, 7 Kommentare

Hallo an alle!

Ich habe ein Verzeichnis mit mehreren Textdateien. Alle Dateien haben das gleiche Dateinamestruktur:

Hersteller_Produkt_Version_Sprache_Benutzer.txt

Also z.B.:

Adobe_Photoshop_CS4_deutsch_Otto.txt
Adobe_Dreamweaver_CS3_1_english_Marta.txt
Microsoft_Office_2010_Build_393_deutsch_Richard.txt
Apple_Quicktime_8_deutsch_Otto.txt

Nun brauche ich einen Batch-Script, welcher alle Dateinamen in diesem Ordner so ändert, dass Benutzer entfernt werden.

Also z.B:

Adobe_Photoshop_CS4_deutsch.txt
Adobe_Dreamweaver_CS3_1_english.txt
Microsoft_Office_2010_Build_393_deutsch.txt
Apple_Quicktime_8_deutsch.txt

Kann mir da jemand helfen? Ich denke so, dass Batch-Script einfach das letzte Wort in Dateienamen (zwischen _ und .txt) finden und löschen soll. Ich weiß es aber nicht, wie man so was realisieren kann.

Grüße,
Sergio
Mitglied: BigWim
29.09.2010 um 10:48 Uhr
Hallo Sergio,

abschließend kann ich Dir nicht helfen, aber vielleicht einen Ansatz

01.
@echo off & setlocal 
02.
 
03.
Set Verzeichnis=c:\tools\test\*.txt 
04.
 
05.
for /f "delims=_ tokens=1-4*" %%a in ('dir %Verzeichnis% /s /b') do call :Machwas %%a %%b %%c %%d %%e 
06.
goto :eof 
07.
 
08.
 
09.
:Machwas 
10.
Set Hersteller=%1 
11.
Set Produkt=%2 
12.
Set Version=%3 
13.
Set Sprache=%4 
14.
Set Rest=%5 
15.
 
16.
echo ren %Hersteller%_%Produkt%_%Version%_%Sprache%_%Rest% %Hersteller%_%Produkt%_%Version%_%Sprache%.txt
Ich habe es etwas ausführlicher geschrieben, damit deutlich wird, was das kleine Script macht.
Mit for /? oder Set /? kannst Du Dir jeweil die Hilfe ansehen und u. U. das Script etwas zusammenfassen, da die Set-Anweisungen nicht wirklich benötigt werden, sondern nur die Lesbarkeit erhöht.

Allerdings konnte ich auf die schnelle nicht das Problem der variablen Anzahl der _ lösen. Das Script funktioniert also wirklich nur bei 4 Unterstrichen, nicht aber bei dem Beispiel Microsoft_Office_......

Wenn es Dir doch eine Hilfe ist, mußt Du noch das "Echo" vor dem "Ren" löschen, da sonst nur eine Bildschirmausgabe der Umbenennung erfolgt.

Mit dieser Zeile
01.
echo ren %Hersteller%_%Produkt%_%Version%_%Sprache%_%Rest% %Hersteller%_%Produkt%_%Version%_%Sprache%.txt >>WasWaereWenn.txt
werden die Bildschirmausgaben in die Datei "WasWaereWenn.txt" umgeleitet und kannst prüfen, wie brauchbar das Script ist ....


Markus
Bitte warten ..
Mitglied: takitano
29.09.2010 um 11:09 Uhr
Hallo Markus,

es haut nicht richtig hin:

Falls der Dateiname so aussieht: Ashampoo_Burning_Studio_10_deutsch_Werner.txt

dann bleibt danach nur noch: Ashampoo_Burning_Studio_10.txt - ohne deutsch. Aber die Sprache soll bleiben!

Es soll also nach dem letzten Wort vor dem Punkt gesucht werden und dieses Wort dann gelöscht werden muss.

Trotzdem Danke für Deine Hilfe!
Bitte warten ..
Mitglied: 72417
29.09.2010 um 12:14 Uhr
Das wird wohl schwierig. Warum hast du denn keine einheitliche Namenskonvention dafür?
Bitte warten ..
Mitglied: bastla
29.09.2010 um 15:04 Uhr
Hallo takitano!
Warum hast du denn keine einheitliche Namenskonvention dafür?
... der Frage schließe ich mich an ...
Soferne es in den Dateinamen keine Leerzeichen gibt, könnte das (allerdings ungetestet) so gehen:
01.
@echo off & setlocal 
02.
set "Verzeichnis=c:\tools\test" 
03.
 
04.
pushd "%Verzeichnis%" 
05.
for /f "delims=" %%a in ('dir /b /a-d *.txt') do set "Name=%%a" & call :ProcessFile "%%a" 
06.
popd 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
for %%i in (%Name:_= %) do set "Benutzer=_%%i" 
11.
call set "NameNeu=%%Name:%Benutzer%=%~x1%%" 
12.
echo ren %1 "%NameNeu%" 
13.
goto :eof
In der Zeile 10 wird der Name aufgeteilt, indem die "_" durch Leerzeichen ersetzt werden - damit kann dann in einer einfachen "for"-Schleife jeder Bestandteil einzeln angesprochen und der Variablen %Benutzer% (samt vorhergehendem "_") zugewiesen werden. Dabei wird natürlich jeweils der vorhergehende Wert überschrieben, sodass am Ende eben der letzte Teil als Variableninhalt zur Verfügung steht.

Dieser Variableninhalt besteht jetzt aber aus "_", dem Benutzernamen sowie der Endung (".txt") - daher wird in der nächsten Zeile im gesamten Namen dieser String nur durch die Endung (%~x1) ersetzt.

Grüße
bastla
Bitte warten ..
Mitglied: takitano
29.09.2010 um 15:57 Uhr
Zitat von 72417:
Das wird wohl schwierig. Warum hast du denn keine einheitliche Namenskonvention dafür?

Weil es verschiedene Versionsnummern und Namen von verschiedenen Programen gibt und verschiedene Leute diese dateien erstellen. Dann schreibt eben einer als Versionsnummer z.B. 3, aber ein anderer 3_1_004567_Build1995.
Vielleicht sollte ich lieber diese Frage bei VBS-Forum stellen - ich glaube mit VBS sollte es besser und leichter klappen.
Bitte warten ..
Mitglied: bastla
29.09.2010 um 16:06 Uhr
Hallo takitano!
ich glaube mit VBS sollte es besser und leichter klappen.
Man kann's zwar auch als Glaubensfrage sehen - aber ein Test meines Batchvorschlages oben könnte Dir relative Gewissheit verschaffen ...

Grüße
bastla
Bitte warten ..
Mitglied: takitano
29.09.2010 um 16:09 Uhr
Zitat von bastla:
Hallo takitano!
> ich glaube mit VBS sollte es besser und leichter klappen.
Man kann's zwar auch als Glaubensfrage sehen - aber ein Test meines Batchvorschlages oben könnte Dir relative Gewissheit
verschaffen ...

Grüße
bastla

Vielen Dank Bastla!

Du hast mich wieder gerettet!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Dateinamen mehrere Dateien ändern mit batch oder vbs Skript

gelöst Frage von Doktore1Batch & Shell3 Kommentare

Hi frohes neues erstmal. Ich würde gerne alle Dateien in ein Ordner umbenennen. Und zwar ein Teil des Dateinamen. ...

Windows 10

Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette

gelöst Frage von vbaGastWindows 1013 Kommentare

Guten Tag, nach meinen bisherigen Recherchen wird das Problem mit Batch eher schwierig zu lösen sein. Daher würde auch ...

Batch & Shell

Dateiname über Batch ändern

gelöst Frage von c64b311ee9Batch & Shell6 Kommentare

Hallo liebe Community, folgendes Problem!: Ich habe einen Ordner mit 500 PDF Dateien. Diese sind nach folgendem Schema aufgebaut. ...

Batch & Shell

Dateinamen mit Batch-Datei ändern - Problem

gelöst Frage von fffffuuuuuuuhhhhBatch & Shell9 Kommentare

Hallo zusammen, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Das Ergebnis soll aber folgendermaßen ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 21 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk13 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...