Batch-Datei Dateinamen umbenennen
Hallo Community,
ich habe hunderte Ordner mit *.xls Dateien mit unterschiedlichen Namen z.B. Januar.xls, Februar.xls. Diese möchte ich jetzt einheitlich mit einem Präfix (Format_*.xls) umbennen. Einige besitzen dieses Präfix schon also heißen bereits Format_Januar . Zudem muss in jeder *.xls Datei eine Tabelle mit den Namen "Format" haben.
Nun benötige ich eine Batch-Datei, die mir
1. checkt ob die Datei das Präfix bereits besitzt ( Format_*.xls), wenn ja diese Datei nicht umbenennen
2. checken ob in allen Dateien eine Tabelle mit dem Name "Format" vorhanden ist, falls nicht wenn möglich mir den Dateiname in ein Logfile speichern
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbenennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!
Danke schonmal im Voraus!
Gruß
Felix
ich habe hunderte Ordner mit *.xls Dateien mit unterschiedlichen Namen z.B. Januar.xls, Februar.xls. Diese möchte ich jetzt einheitlich mit einem Präfix (Format_*.xls) umbennen. Einige besitzen dieses Präfix schon also heißen bereits Format_Januar . Zudem muss in jeder *.xls Datei eine Tabelle mit den Namen "Format" haben.
Nun benötige ich eine Batch-Datei, die mir
1. checkt ob die Datei das Präfix bereits besitzt ( Format_*.xls), wenn ja diese Datei nicht umbenennen
2. checken ob in allen Dateien eine Tabelle mit dem Name "Format" vorhanden ist, falls nicht wenn möglich mir den Dateiname in ein Logfile speichern
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbenennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!
Danke schonmal im Voraus!
Gruß
Felix
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 15.03.2012 um 10:53:03 Uhr
Batch-Datei Dateinamen umbennen
Set /a rgc+=1#799
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbennen falls nötig
...oder mit dem Befehl umbennen renamen falls möglich...set /a rg+=1
#800
Danke schonmal im Vorraus!
... und noch ein Tropfen, der dem Fass den Boden aufsetzt..Content-ID: 181988
Url: https://administrator.de/forum/batch-datei-dateinamen-umbenennen-181988.html
Ausgedruckt am: 18.05.2025 um 19:05 Uhr
12 Kommentare
Neuester Kommentar
Aloha,
zu 1. Das Thema ist neu und interessant, jedoch kauen wir ungern ewig auf altem Fleisch herum, darum wäre die Suchfunktion durchaus mehr als sinnvoll nutzbar (sofern man nicht nach dem
wäre natürlich einfach mit einer
zu 2. pure batch? Vergiss es, maximal mit .vbs included und da warte dann mal auf unsere vbsler (bastla, TsukiSan, Friemler)
greetz André
@t-mo, wer schnell haben will, sollte vbs nutzen, von schnell war hier nicht die Rede
Solange cmd schneller ist als Windows-Suche, ist für mich alles in Butter.
zu 1. Das Thema ist neu und interessant, jedoch kauen wir ungern ewig auf altem Fleisch herum, darum wäre die Suchfunktion durchaus mehr als sinnvoll nutzbar (sofern man nicht nach dem
rgc
umbennen sucht, wobei, trifft auch viel).wäre natürlich einfach mit einer
for /f
-Schleife ein dir /b /s "%Pfad%\*.xls"^|findstr /v /B Format
durchzujagen, um dann ein ren "%%s" "Format_%%~nxs"
durchzuführenzu 2. pure batch? Vergiss es, maximal mit .vbs included und da warte dann mal auf unsere vbsler (bastla, TsukiSan, Friemler)
greetz André
@t-mo, wer schnell haben will, sollte vbs nutzen, von schnell war hier nicht die Rede
Solange cmd schneller ist als Windows-Suche, ist für mich alles in Butter.

moin,
mal ein kleiner denkanstoß...
Welche Dateien findet dieser Befehl?
Ps:
1. ich würde eine Schleife nehmen
2. ich vermute, du wirst das mit einem VBA lösen müssen...
Gruß
Edit
@ André (nein immernoch via ipad unterwegs)
2 dumme 3 gedanken?
Bei 100erten dateien, wuerde ich tatsaechlich zwei dirs auspipen, und dann via findstr /v die _ dateien auskillen und den rest verhackstueckeln.
Sollte bei dem umfang sehr viel schneller gehen.
/edit
mal ein kleiner denkanstoß...
Welche Dateien findet dieser Befehl?
dir /s *.xls
und jener?dir /s Format_*.xls
Ps:
Nun benötige ich eine Batch-Datei, die mir
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!
1. ich würde eine Schleife nehmen
2. ich vermute, du wirst das mit einem VBA lösen müssen...
Gruß
Edit
@ André (nein immernoch via ipad unterwegs)
2 dumme 3 gedanken?
Bei 100erten dateien, wuerde ich tatsaechlich zwei dirs auspipen, und dann via findstr /v die _ dateien auskillen und den rest verhackstueckeln.
Sollte bei dem umfang sehr viel schneller gehen.
/edit

Salue
Aber leider nooch keinen #rgc fuer €echo off....
Ich wuerde ja dem do ren ein echo spendieren..
Aussser du bist einer von den ganz harten, die schon in den garten duerfen, denn nur do ren ballert alles wech...
Dann ist ren natuerlich auch so ein ding, besser als move, denn das ballert evtl. Vorhandene richtig benamste dateien gnadenlos in den orkus....
Mein tipp nimm zip und sicher die erstmal alle.......
Aber leider nooch keinen #rgc fuer €echo off....
Ich wuerde ja dem do ren ein echo spendieren..
Aussser du bist einer von den ganz harten, die schon in den garten duerfen, denn nur do ren ballert alles wech...
Dann ist ren natuerlich auch so ein ding, besser als move, denn das ballert evtl. Vorhandene richtig benamste dateien gnadenlos in den orkus....
Mein tipp nimm zip und sicher die erstmal alle.......

Salve
[OT]
hmmm - wie macht er das nur immer - via setx wuerde ich ja verstehen, aber ein set alleine ist doch beim dosboxzuboxxen wech...
[/OT]
[OT]
Kommentar von Moderator Biber am 15.03.2012 um 10.53.03 Uhr
Set /a rgc+=1
Set /a rgc+=1
hmmm - wie macht er das nur immer - via setx wuerde ich ja verstehen, aber ein set alleine ist doch beim dosboxzuboxxen wech...
[/OT]
Hallo Hobelbank und willkommen im Forum, hallo Skye & T-Mo!
Thema 2 ließe sich etwa so abhandeln:
Dem VBScript werden Datei- und Tabellenname als Parameter übergeben. Die Rückmeldung erfolgt per Errorlevel (1 = "Tabelle nicht gefunden").
Grüße
bastla
Thema 2 ließe sich etwa so abhandeln:
@echo off & setlocal
set "rootdir=C:\Tabellen"
set "filefilter=*.xls"
set "sheet=Format"
set "log=C:\Tabellen\Fehlend.txt"
set C=%temp%\CheckForSheet.vbs
>%C% echo SName=LCase(WScript.Arguments(1))
>>%C% echo Set oXL=CreateObject("Excel.Application")
>>%C% echo With oXL
>>%C% echo .Workbooks.Open WScript.Arguments(0):For Each Sh In .Sheets:If LCase(Sh.Name)=SName Then:F=True:Exit For:End If:Next:.ActiveWorkbook.Close False
>>%C% echo .Application.Quit
>>%C% echo End With
>>%C% echo If Not F Then WScript.Quit 1
del "%Log%" 2>nul
for /f "delims=" %%i in ('dir /s/b "%rootdir%\*%filefilter%"') do cscript //nologo %C% "%%i" "%sheet%"||>>"%log%" echo %%i
Grüße
bastla
Aloha Felix,
ist es möglich, dass du bastlas Skript als .vbs gespeichert und ausgeführt hast?
Denn der besagte Fehler klingt so als ob dem so sei (1. Zeichen = @ = vbs Kill), ich hoffe, du hast bemerkt, dass bastlas Skript eine batch-Ausführung ist und kein pures vbs, das vbs steckt da nur drin und wird extra aufgerufen.
greetz André
ist es möglich, dass du bastlas Skript als .vbs gespeichert und ausgeführt hast?
Denn der besagte Fehler klingt so als ob dem so sei (1. Zeichen = @ = vbs Kill), ich hoffe, du hast bemerkt, dass bastlas Skript eine batch-Ausführung ist und kein pures vbs, das vbs steckt da nur drin und wird extra aufgerufen.
greetz André