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, 20208 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

Variable aus VBS in Batch einlesen

gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Entwicklung

Mit welchem Befehl kann ich in einer if schleife in Batch

gelöst Frage von JanInfoHDEntwicklung1 Kommentar

Mit welchem Befehl kann ich in einer if schleife in Batch dem Computer sagen das wenn die eingabe nicht ...

Windows Installation

CMD-Batch Programmstart Befehle

Frage von timsen96Windows Installation1 Kommentar

Schönen guten Tag zusammen, ich möchte gerne über eine cmd oder batch datei ein Programm oder Installation öffnen und ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 2 TagenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 4 TagenHumor (lol)10 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 4 TagenExchange Server9 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 5 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
E-Mail
Deutsche e-Mail Adresse auf iPhone in Katar. Nur Probleme
gelöst Frage von vanTastE-Mail32 Kommentare

Moin, ich habe hier in Deutschland auf einem Exchange 2013 eine e-Mail Adresse (name@domain.de) für einen Kollegen in Katar ...

Windows Server
Domäne beitreten nicht möglich, unter VMWare windows Server 2016 Core
Frage von AmanuelWindows Server21 Kommentare

Ich habe auf meinem Mac unter VMWare Windows Server 2016 Core und Windows Server 2016 Desktopversion installiert. Beide Systeme ...

Windows Server
Server verliert Dateien und Ordner
gelöst Frage von routeserverWindows Server18 Kommentare

Hallo Freunde, ich habe hier ein Problem, das mich an meine Grenzen treibt und ich würde gerne wissen, ob ...

Windows Tools
User Self Service und Client Management
Frage von OrkansonWindows Tools14 Kommentare

Hallo zusammen, ich hab ein paar verschiedene Fragen: 1. Was benutzt ihr um Software im Unternehmen zu verteilen? 2. ...