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-ID: 58849

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

Ausgedruckt am: 05.11.2024 um 13:11 Uhr

yashi
yashi 12.05.2007 um 14:42:04 Uhr
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
Soidberg
Soidberg 12.05.2007 um 20:26:08 Uhr
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
bastla
bastla 12.05.2007 um 21:25:08 Uhr
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
Soidberg
Soidberg 13.05.2007 um 01:52:08 Uhr
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
bastla
bastla 13.05.2007 um 07:57:21 Uhr
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
Soidberg
Soidberg 14.05.2007 um 13:25:55 Uhr
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