heavymetaller
Goto Top

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]

Content-Key: 90327

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

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: bastla
bastla 21.06.2008 um 16:03:30 Uhr
Goto Top
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
@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
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
Mitglied: heavymetaller
heavymetaller 21.06.2008 um 16:11:00 Uhr
Goto Top
ich habe die benutzerdaten mit den wichtigen daten einzelner kunden in einer kleinen anwendung gespeichert, das system möchte ich auch beibehalten, da mir das so vorgeschrieben wird vom chef.
Ich kann praktisch an der kundennummer einfach die das programm öffnen in der ich alle wichtigen (und vertraulichen) daten wiederfinde, die daten tragen die kunden mannuell ein.

um die exen ´n automatisch zu starten und mit einer excel-tabelle zu verknüpfen brauche ich die als lnk. der übersichthaber mit kundennummer als name.

bloß 10000 datein manuell umbennen... XD du weist... nich möglich
Mitglied: bastla
bastla 21.06.2008 um 16:51:25 Uhr
Goto Top
Hallo heavymetaller!

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"  
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]
Mitglied: heavymetaller
heavymetaller 22.06.2008 um 12:19:08 Uhr
Goto Top
hab im netz dazu noch das hier gefunden:

matchlink.exe

machlink -q:"start.exe KndNr\00001.lnk" -z:"%ALLUSERSPROFILE%\Desktop\1.lnk"
machlink -q:"start.exe KndNr\00002.lnk" -z:"%ALLUSERSPROFILE%\Desktop\2.lnk"
machlink -q:"start.exe KndNr\00003.lnk" -z:"%ALLUSERSPROFILE%\Desktop\3.lnk"

habe aber das problem, dass er zwar ganz toll alle links erstellt, aber bei "ausführen in:" der Ordner nicht drin steht..

werde deinen code aber auch jetzt mal testen