soidberg
Goto Top

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

Content-Key: 58849

Url: https://administrator.de/contentid/58849

Printed on: April 25, 2024 at 16:04 o'clock

Member: yashi
yashi May 12, 2007 at 12:42:04 (UTC)
Goto Top
Hallo.

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
Member: Soidberg
Soidberg May 12, 2007 at 18:26:08 (UTC)
Goto Top
Es sollen nicht nur .rar´s umbenannt werden. Die .bat wird später mit dem Programm "Quick Batch Compile" zu einer .exe gewandelt.

Mit temporärem VBScript habe ich bisher gute Erfahrung gemacht, deshalb der Wunsch danach.

Gruß Soidberg
Member: bastla
bastla May 12, 2007 at 19:25:08 (UTC)
Goto Top
Hallo Soidberg!

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
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
Member: Soidberg
Soidberg May 12, 2007 at 23:52:08 (UTC)
Goto Top
Hy und direkt vielen Dank. face-smile

Wäre es möglich das Script so zu verändern das wenn man auf Abbruch klickt auch die .bat zum Ende springt und nix verändert? Ansonsten ist es wohl perfekt.

So langsam fange ich an mich wirklich für Batch zu interessieren, hast Du da eventuell einen Tipp für passende Lektüre?

Gruß Soidberg
Member: bastla
bastla May 13, 2007 at 05:57:21 (UTC)
Goto Top
Hallo Soidberg!

Füge nach del "%Eingabe%" ein:
if "%Neu%"=="" goto :eof  
... Tipp für passende Lektüre?
Forumsbeiträge/Tutorials hier face-wink, natürlich vor allem von Biber; ansonsten eigentlich nur, was sich sonst noch so im Web finden lässt ...

Grüße
bastla
Member: Soidberg
Soidberg May 14, 2007 at 11:25:55 (UTC)
Goto Top
So, das war es auch schon.

Bastla´s Ausführungen funktionieren bestens.

@bastla

Vielen lieben Dank für diese Zeilen. Ja , das Forum hier ist schon klasse. Nur wenn ich etwas lernen möchte dann auch von der Picke auf. Muss mal schauen was es dafür so gibt..

Thema gilt somit als gelöst.

EDIT:

Wer interesse an der compilierten .exe hat, schreibt mir bitte eine PN.

Liebe Grüße Soidberg