Dateien umbenennen (minitool)
Hallo liebe Kollegen,
ich bräuchte eine .bat (welch ein Wunder).
Zutaten:
Ein bissl temporäres VBScript + Batchcode
Aufgabe:
Die .bat soll ein VBScript erstellen. Mit diesem VBScript soll ein Eingabefenster erscheinen in dem ein Name angegeben werden kann.
Der Name wird an die .bat übergeben und diese benennt alle Dateien im selben Ordner um.
Beispiel:
looolz.part1.rar
looolz.part2.rar
looolz.part3.rar
looolz.part4.rar
zu:
wunschname_looolz.part1.rar
wunschname_looolz.part2.rar
wunschname_looolz.part3.rar
wunschname_looolz.part4.rar
Wobei *wunschname* die Bezeichnung darstellt die im vbScript eingegeben wurde, das Zeichen "_" dient als Trennzeichen.
Ablauf:
1) Ich lege die .bat in den Ordner in dem ich Dateien umbenennen möchte uns starte Sie. Die .bat erstellt ein VBScript das mich nach der Bezeichnung fragt.
2) Ich gebe die Bezeichnung ein und die .bat benennt alle Datein um.
3) Die temporäre VBScriptdatei wird wieder gelsöcht.
Hat da jemand gerade mal auf die schnelle die passenden Zeilen parat?
Anmerkung:
Da die .bat zu einer exe compiliert wird, soll die Eingabe über ein vbscript laufen und nicht über die cmd selber.
Nette Grüße
Soidberg
ich bräuchte eine .bat (welch ein Wunder).
Zutaten:
Ein bissl temporäres VBScript + Batchcode
Aufgabe:
Die .bat soll ein VBScript erstellen. Mit diesem VBScript soll ein Eingabefenster erscheinen in dem ein Name angegeben werden kann.
Der Name wird an die .bat übergeben und diese benennt alle Dateien im selben Ordner um.
Beispiel:
looolz.part1.rar
looolz.part2.rar
looolz.part3.rar
looolz.part4.rar
zu:
wunschname_looolz.part1.rar
wunschname_looolz.part2.rar
wunschname_looolz.part3.rar
wunschname_looolz.part4.rar
Wobei *wunschname* die Bezeichnung darstellt die im vbScript eingegeben wurde, das Zeichen "_" dient als Trennzeichen.
Ablauf:
1) Ich lege die .bat in den Ordner in dem ich Dateien umbenennen möchte uns starte Sie. Die .bat erstellt ein VBScript das mich nach der Bezeichnung fragt.
2) Ich gebe die Bezeichnung ein und die .bat benennt alle Datein um.
3) Die temporäre VBScriptdatei wird wieder gelsöcht.
Hat da jemand gerade mal auf die schnelle die passenden Zeilen parat?
Anmerkung:
Da die .bat zu einer exe compiliert wird, soll die Eingabe über ein vbscript laufen und nicht über die cmd selber.
Nette Grüße
Soidberg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 58849
Url: https://administrator.de/contentid/58849
Ausgedruckt am: 05.11.2024 um 13:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo.
Ich kann zwar kein VB script, aber soweit ich dich richtig verstanden habe, könnte doch etwa sowas dein Problem lösen:
Die Eingabe kann man also nicht im Programm realisieren ? (cin >> var)
Und schreibst du das Programm selber ?
mfg
Ich kann zwar kein VB script, aber soweit ich dich richtig verstanden habe, könnte doch etwa sowas dein Problem lösen:
@echo off
set "customstring=test"
:: vb-script: exec thisbat.bat +param(customstring) !
cd /d %~dp0
for /f "delims=" %%f in ('dir *.rar /b') do (
ren "%%~nxf" "%customstring%_%%~nxf"
)
Die Eingabe kann man also nicht im Programm realisieren ? (cin >> var)
Und schreibst du das Programm selber ?
mfg
Hallo Soidberg!
Wenn tatsächlich alle Dateien im Verzeichnis, in dem die Batchdatei liegt, umbenannt werden sollen, könnte das so aussehen:
Falls Du den Defaultwert "Default" (oder was auch immer passen könnte) für die Eingabe nicht benötigst, kannst Du ihn einfach (natürlich samt dem Komma davor) weglassen.
In der dargestellte Minimalvariante übernimmt das VBScript ohne weitere Kontrolle die Eingabe des Benutzers, diese kann also (zB bei Abbruch der Eingabe) auch leer sein (womit dann der neue Name sich nur durch das "_" am Anfang vom alten unterscheiden würde).
Die zweite "for"-Schleife ist nötig, um die Batchdatei selbst vor dem Umbenennen zu schützen, sonst ziehst Du Dir den Boden unter den Füßen weg ...
Grüße
bastla
Wenn tatsächlich alle Dateien im Verzeichnis, in dem die Batchdatei liegt, umbenannt werden sollen, könnte das so aussehen:
@echo off & setlocal
pushd %~dp0
set "Eingabe=%temp%\Eingabe.vbs"
echo WScript.Echo InputBox("Bitte den neuen Namen eingeben!", "Fenstertitel", "Default")>"%Eingabe%"
for /f "delims=" %%i in ('cscript //nologo "%Eingabe%"') do set "Neu=%%i"
del "%Eingabe%"
for /f "delims=" %%i in ('dir /b /a-d^|findstr /v "%~nx0"') do ren "%%i" "%Neu%_%%i"
popd
In der dargestellte Minimalvariante übernimmt das VBScript ohne weitere Kontrolle die Eingabe des Benutzers, diese kann also (zB bei Abbruch der Eingabe) auch leer sein (womit dann der neue Name sich nur durch das "_" am Anfang vom alten unterscheiden würde).
Die zweite "for"-Schleife ist nötig, um die Batchdatei selbst vor dem Umbenennen zu schützen, sonst ziehst Du Dir den Boden unter den Füßen weg ...
Grüße
bastla