Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst (batch)(vbs) ShortCut Ziel und Befehl

Mitglied: Phlegma

Phlegma (Level 1) - Jetzt verbinden

10.03.2007, aktualisiert 16:50 Uhr, 20293 Aufrufe, 5 Kommentare

Moin, ich melde mich am wieder ...
hab mal wieder ein tolles problem mitgebracht...
eigentlich müsste ich im VB bereich posten aber mein proggi basiert auf batch und davon versteh ich viel mehr..

also,
ich hab da folgenden script:
01.
@echo off
02.
set progtitel=XXX
03.
set progname=XXX XXX XXX
04.
set progdir=XXX
05.
set progexe=XXX.exe
06.
set zielpfad=c:\XXX
07.
md "%userprofile%\Startm~1\Programme\%progdir%\"
08.
echo '                  MakeShortCut.vbs >%temp%\MakeShortCut.vbs
09.
echo. >>MakeShortCut.vbs
10.
echo Const strProgramTitel="UnInstall" >>%temp%\MakeShortCut.vbs
11.
echo Const strProgram="%zielpfad%\Install.exe" deinstall >>%temp%\MakeShortCut.vbs
12.
echo Const strProgramOrt="%zielpfad%" >>%temp%\MakeShortCut.vbs
13.
echo Const StrProgramDescript="DeInstallation von %progdir%" >>%temp%\MakeShortCut.vbs
14.
echo Const strProgramMenuOrt="Programme\%progdir%" >>%temp%\MakeShortCut.vbs
15.
echo Dim objShortcut >>%temp%\MakeShortCut.vbs
16.
echo Dim objShell >>%temp%\MakeShortCut.vbs
17.
echo Set objShell= WScript.CreateObject("Wscript.Shell") >>%temp%\MakeShortCut.vbs
18.
echo strLPfad=objShell.SpecialFolders("Startmenu") >>%temp%\MakeShortCut.vbs
19.
echo Set objShortcut=objShell.CreateShortcut(strLPfad ^& _ >>%temp%\MakeShortCut.vbs
20.
echo "\" ^& strProgramMenuOrt ^& "\" ^& strProgramTitel ^& ".lnk") >>%temp%\MakeShortCut.vbs
21.
echo objShortcut.TargetPath= strProgram >>%temp%\MakeShortCut.vbs
22.
echo objShortcut.Description= strProgramDescript >>%temp%\MakeShortCut.vbs
23.
echo objShortcut.WorkingDirectory = strProgramort >>%temp%\MakeShortCut.vbs
24.
echo objShortcut.Save >>%temp%\MakeShortCut.vbs
25.
cscript //nologo %temp%\MakeShortCut.vbs
26.
pause
dieser ist auch funktionsfähig wenn man das deinstall in der 4 zeile wegnimmt, das frisst er nicht.
also was ich eig möchte:
eine verknüpfung im startmenü zu meienr install.exe (komplierte batch datei) und diese soll mit dem parameter deinstall gestartet werden, denn dadruch wird in der batch der teil mit der deinstallation gestartet.

aber wie schon oben gesagt mag er mein deinstall nicht.

was ich bereits probiert habe:
ursprungsform:
01.
echo Const strProgram="%zielpfad%\Install.exe" deinstall >>%temp%\MakeShortCut.vbs
2tens:
01.
echo Const strProgram="%zielpfad%\Install.exe deinstall" >>%temp%\MakeShortCut.vbs
geht nicht, und da liegt auch im folgenden das problem, weil das ziel dann deinstall in den anführungszeichen beinhaltet.
3tens:
01.
echo Const strProgram="%zielpfad%\Install.exe" >>%temp%\MakeShortCut.vbs
02.
echo Const strProgramDO="deinstall" >>%temp%\MakeShortCut.vbs
03.
[...]
04.
echo objShortcut.TargetPath= strProgram ^& " " ^& strProgramDO>>%temp%\MakeShortCut.vbs
produziert das selbe wie 2tens

ok daraus komme ich zu dem schluss das ich mit meinem latein am ende bin...

ich würde mich sehr über hilfe freuen!

nochmal damit ich nicht falsch verstanden werde:
ich brauche in der zeile Ziel der Verknüpfung den pfad in anführungszeichen und danach meinen befehl... vllt lässt er sich ja auch nachträglich hinzufügen?

andere lösungen die zum selben ergebnis führen und nicht unverständlich sind für mich sind auch willkommen! (bitte nur batch, nach möglichkeit kein vbs, jedenfalls nicht unverständlichers als das was hier is...^^vor allem @bastla :D)

thx
gruß, Ph
Mitglied: bastla
10.03.2007 um 14:39 Uhr
Hallo Phlegma!

Wenn's was leicht Verständliches sein soll, vielleicht so (als zusätzliche Zeile):
01.
echo objShortcut.Arguments = "deinstall" >>%temp%\MakeShortCut.vbs
Grüße
bastla
Bitte warten ..
Mitglied: Biber
10.03.2007 um 15:17 Uhr
@bastla
Jepp... ist das Sinnvollste und Lesbarste.

Theoretisch würde es auch funktionieren wenn der Programmpfad (der wegen der Leerzeichen in Anführungszeichenstehen muss)
im VBS maskiert wäre.
Also die Anführungszeichen nicht als ["], sondern als [ chr(34)] geschrieben werden würden.

An dem obigem Codeschnipsel durchgekaspert würde dann so etwas schwer les/wartbares rauskommen:
01.
::----DerPhlegma.bat
02.
@echo off
03.
set progtitel=XXXTitel
04.
set progname=XXX XXX Name XXX
05.
set progdir=XXXProgdir
06.
set progexe=XXXExe.exe
07.
set zielpfad=c:\XXXZielpfad
08.
REM so setzen zum Testen: Set Target=con:
09.
Set target=%temp%\MakeShortCut.vbs
10.
md "%userprofile%\Startm~1\Programme\%progdir%\"
11.
(echo '                  MakeShortCut.vbs
12.
echo. 
13.
echo Const strProgramTitel="UnInstall"
14.
echo Const strProgram= "%zielpfad%\Install.exe"
15.
echo Const strProgrammDeInstPar=" deinstall"
16.
echo Const strProgramOrt="%zielpfad%"
17.
echo Const StrProgramDescript="DeInstallation von %progdir%"
18.
echo Const strProgramMenuOrt="Programme\%progdir%"
19.
echo Dim objShortcut
20.
echo Dim objShell
21.
echo Set objShell= WScript.CreateObject^("Wscript.Shell"^)
22.
echo strLPfad=objShell.SpecialFolders^("Startmenu"^)
23.
echo Set objShortcut=objShell.CreateShortcut(strLPfad ^& _ 
24.
echo "\" ^& strProgramMenuOrt ^& "\" ^& strProgramTitel ^& ".lnk"^)
25.
:: ## neue Zeile folgt
26.
echo objShortcut.TargetPath= chr^(34^) ^& strProgram ^& chr^(34^) ^& StrProgramDeInstPar 
27.
::## Ende neueZeile
28.
echo objShortcut.Description= strProgramDescript
29.
echo objShortcut.WorkingDirectory = strProgramort
30.
echo objShortcut.Save )>%target%
31.
cscript //nologo %target%
32.
pause
...mit mehreren Konsequenzen, die die Lesbarkeit erschweren.
a) Ich habe jetzt (z.T.überflüssiger-, zum Teil notwendigerweise) alle runden Klammern und alle Ampersamds in den "echo"-Zeilen mit Caret maskiert.
Sieht grottig aus.
b) zu überprüfen ist, inwieweit hier unnötige, nein nicht Komplexität, sondern lieber auf Deutsch: Kompliziertheit *gg hineinkommt durch die Deklaration der strXXX-Variablen als "Const". Dadurch kann ich oben nicht strProgram und strProgramDeInstPar zusammenfassen. Da ich bei "Const"-Deklararionen natürlich nicht die Funktion chr(34) aufrufen darf.

Empfehle also auch bastla's Lösung --- meine Variante nur for educational purposes.

Gruss
Biber
Bitte warten ..
Mitglied: bastla
10.03.2007 um 15:23 Uhr
@Biber

Ich fürchte, auch so wird's nix - beim ".Save" wird der (gesamte) Target-Eintrag überprüft und beim Vorhandensein eines Leerzeichens dieses auf Teufel komm raus mit Anführungszeichen "einzufangen" versucht - zumindest meinen Tests zufolge ...

Grüße
bastla

P.S.: Wenn's denn educational sein soll: Die Anführungszeichen könnte man/frau/kind ganz unmaskiert auch per "" hinbekommen - konkret:
01.
echo Const strProgram = """%zielpfad%\Install.exe"""
Bitte warten ..
Mitglied: Biber
10.03.2007 um 15:44 Uhr
@bastla

Stimmt - hab grad den Schnipsel durchlaufen lassen.
Verknüpfung wird (ohne Fehlermeldungen) angelegt, aber in dem neuen Link kommt kein Deinstall-Parameter an.
("Ziel" in den Eigenschaften des Links ist "C:\XXXZielpfad\Install.exe").

Noch ein Grund mehr für Deine Lösung.
Es hatte mich offengestanden auch gestört, wenn das Property "TargetPath"/"Ziel" zusätzlich zum Programmnamen auch für Programmparameter vorgesehen wäre.

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Phlegma
10.03.2007 um 16:50 Uhr
danke!!

schöne fachdiskussion...

ich bevorzuge erste lösung da sie einfach die einfachste ist..^^

werde ich sofort einbauen!

thx! Ph
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Verknüpfung mittels Batch erstellen - Punkt in Ziel, Ziel ist ein Ordner

gelöst Frage von moses-southBatch & Shell5 Kommentare

Hallo Zusammen Ich habe folgendes Problem: Bei uns auf dem Fileserver wird für jedes Projekt, ein eigener Ordner mit ...

Batch & Shell

Shortcut Batchfile

Frage von donmanolitoBatch & Shell1 Kommentar

Ich hab hier ein Batchfile das Shortcuts per VBScript erstellen soll. Leider funktionierts nicht so recht und ich kann ...

Batch & Shell

Base64 Decode (Batch,VBS)

gelöst Frage von clragonBatch & Shell26 Kommentare

Hey Leute Ich suche gerade nach einem kleinen VBS schnipsel für mein aktuelles Batch Projekt. Das Schnipsel soll in ...

Batch & Shell

BATCH: Minuszeichen in set-Befehl

gelöst Frage von SchottenrockBatch & Shell3 Kommentare

Guten Morgen, ich komme gerade nicht weiter und es wit wohl nur eine Kleinigkeit, aber ich steh gerade auf ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 12 StundenInternet2 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 16 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs24 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell21 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...