CMD .exe zu .lnk und umbennen?
Hi
Frage an die Experten:
Ich suche eine Möglichkeit, evtl. via CMD (muss aber nicht), um aus einer Kundendatenbank verknüpfungen automatisch zu erstellen.
es bestehen 10.000 Ordner in den jeweils die selbe anwendung kopiert wurde
Die Ordner sind mit "00001" bis "10000" benannt. in den ordnern befindet sich je eine "start.exe"
Diese start.exe soll in einen Ordner namens "KndNr" verknüpft werden und den selben Namen wie der Ordner erhalten aus der die exe verlinkt wurde.
also:
Pfad: *\00001\start.exe -> *\KndNr\00001.lnk
Pfad: *\00002\start.exe -> *\KndNr\00002.lnk
Pfad: *\00003\start.exe -> *\KndNr\00003.lnk
.
.
Pfad: *\10000\start.exe -> *\KndNr\10000.lnk
Vielen Dank im Vorraus
eurer heavy
[Edit Biber] Verschoben von "Windows" nach "Batch & Shell".
Und ja, ich habe es gesehen - wieder ein "umbennen"-Beitrag.
Und nein, ich werde nichts dazu schreiben. Lässt mich kalt. Lach ich drüber. Pfff. [Edit]
Frage an die Experten:
Ich suche eine Möglichkeit, evtl. via CMD (muss aber nicht), um aus einer Kundendatenbank verknüpfungen automatisch zu erstellen.
es bestehen 10.000 Ordner in den jeweils die selbe anwendung kopiert wurde
Die Ordner sind mit "00001" bis "10000" benannt. in den ordnern befindet sich je eine "start.exe"
Diese start.exe soll in einen Ordner namens "KndNr" verknüpft werden und den selben Namen wie der Ordner erhalten aus der die exe verlinkt wurde.
also:
Pfad: *\00001\start.exe -> *\KndNr\00001.lnk
Pfad: *\00002\start.exe -> *\KndNr\00002.lnk
Pfad: *\00003\start.exe -> *\KndNr\00003.lnk
.
.
Pfad: *\10000\start.exe -> *\KndNr\10000.lnk
Vielen Dank im Vorraus
eurer heavy
[Edit Biber] Verschoben von "Windows" nach "Batch & Shell".
Und ja, ich habe es gesehen - wieder ein "umbennen"-Beitrag.
Und nein, ich werde nichts dazu schreiben. Lässt mich kalt. Lach ich drüber. Pfff. [Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90327
Url: https://administrator.de/forum/cmd-exe-zu-lnk-und-umbennen-90327.html
Ausgedruckt am: 21.05.2025 um 09:05 Uhr
4 Kommentare
Neuester Kommentar
Hallo heavymetaller und willkommen im Forum!
Auch wenn das Erstellen der Links keine große Sache ist (was Dir die Suchfunktion hier im Forum dazu liefert, sollte schon genügen): Wäre es nicht vielleicht einfacher / sinnvoller, etwa einen Batch der Art
zu verwenden (oder, bei Bedarf, wegen der etwas ansprechenderen Oberfläche auch ein kleines VBScript)?
Vielleicht holst Du mit Deiner Beschreibung etwas weiter aus und erklärst auch kurz, wozu die selbe .exe-Datei in jedem Ordner liegen muss ...
Grüße
bastla
Auch wenn das Erstellen der Links keine große Sache ist (was Dir die Suchfunktion hier im Forum dazu liefert, sollte schon genügen): Wäre es nicht vielleicht einfacher / sinnvoller, etwa einen Batch der Art
@echo off & setlocal
set /p "KNr=Kundennummer? "
if not defined KNr goto :eof
if not exist "*\%KNr%\start.exe" goto :eof
cd /d "*\%KNr%"
start.exe
Vielleicht holst Du mit Deiner Beschreibung etwas weiter aus und erklärst auch kurz, wozu die selbe .exe-Datei in jedem Ordner liegen muss ...
Grüße
bastla
Hallo heavymetaller!
Letzten Endes ist es ohnehin Deine Entscheidung ...
Versuch es mit folgendem Batch:
Zum Testen wird es sinnvoll sein, etwa 3 Kundenordner in einen anderen Pfad zu kopieren und diesen Pfad in den Zeilen 2 und 3 anstelle des "*" einzutragen.
Falls "KndNr" parallel zu den "00001"- bis "10000"-Ordnern (und daher auch in %Basis%) angelegt wird, erstellt der Batch (da alle Unterordner von %Basis% behandelt werden) auch einen Link zur (nicht existierenden) "Start.exe" dieses Ordners; entweder löschst Du diese Verknüpfung manuell oder du kannst ein Suchmuster (etwa "%Basis%\0*.*", damit nur mit "0" beginnende Ordner erfasst werden) in der Zeile 15 vorgeben.
Grüße
bastla
[Edit] Basis-Pfad auf "*" (analog zur Beschreibung im Eröffnungsposting) geändert. [/Edit]
Letzten Endes ist es ohnehin Deine Entscheidung ...
Versuch es mit folgendem Batch:
@echo off & setlocal
set "Zielpfad=*\KndNr"
set "Basis=*"
if not exist "%Zielpfad%" md "%Zielpfad%"
set M=%temp%\MakeShortCut.vbs
echo Set args=WScript.Arguments>%M%
echo Set objShell=WScript.CreateObject("WScript.Shell")>>%M%
echo Set objShortcut=objShell.CreateShortcut(args(0))>>%M%
echo objShortcut.TargetPath=args(1)>>%M%
echo objShortcut.WorkingDirectory=args(2)>>%M%
echo objShortcut.Save>>%M%
for /d %%i in ("%Basis%\*.*") do cscript //nologo %M% "%Zielpfad%\%%~nxi.lnk" "%Basis%\%%~nxi\Start.exe" "%Basis%\%%~ni"
Falls "KndNr" parallel zu den "00001"- bis "10000"-Ordnern (und daher auch in %Basis%) angelegt wird, erstellt der Batch (da alle Unterordner von %Basis% behandelt werden) auch einen Link zur (nicht existierenden) "Start.exe" dieses Ordners; entweder löschst Du diese Verknüpfung manuell oder du kannst ein Suchmuster (etwa "%Basis%\0*.*", damit nur mit "0" beginnende Ordner erfasst werden) in der Zeile 15 vorgeben.
Grüße
bastla
[Edit] Basis-Pfad auf "*" (analog zur Beschreibung im Eröffnungsposting) geändert. [/Edit]