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-Datei wird über eine Verknüpfung ausgeführt. Wie den Pfad zu der Verknüpfung ermitteln und dem aufgerufenen Batch übergeben?

Frage Entwicklung Batch & Shell

Mitglied: evinben

evinben (Level 2) - Jetzt verbinden

03.03.2012, aktualisiert 30.04.2012, 9670 Aufrufe, 11 Kommentare

Hier wird nicht der Pfad zu dem Verknüpfungsziel (zu der Verknüpfungsdatei) gesucht, sondern zu der Verknüpfung.

Aufgabe:
Eine Batch-Datei befindet sich in einem Verzeichnis Nr. 1 und eine Verknüpfung zu ihr in einem anderen (z. B. hier Nr. 2).
Diese Batch-Datei wird über die Verknüpfung ausgeführt und der laufende Bach soll nun in der Lage sein zusätzlich zu dem Verzeichnis der Verknüpfung zu wechseln, um dort paar Dateien zu verarbeiten, da deren Pfade in der Batch-Datei nicht "absolut", sondern "relativ" eingetragen sind.
Also um das Vorhaben zu ermöglichen, soll zumindest das Verzeichnis der Verknüpfung oder noch besser der vollständige Pfad zu ihr dem aufgerufenen Batch übergeben werden (bei der letzten Variante könnte der Batch sogar - abhängig von dem Namen der Verknüpfung - mit Bedingungen verarbeitet werden).
Die Große Frage ist nun: Wie den vollständigen Pfad zu der Verknüpfung bzw. nur das Verzeichnis der Verknüpfung dem aufgerufenen Batch übergeben?

Hallo,

wie kann man den Pfad der Verknüpfung selbst ermitteln?
Leider keine gelösten Beiträge konnte ich finden. Geht das wohl wirklich nicht?
Es ist nämlich aus diesem Grund wichtig den Pfad zu der Verknüpfung dem ausgerufenen Batch zu übergeben, da es in verschiedenen Verzeichnisse unterschiedliche Verknüpfungen zur derselben Batch-Datei gibt, der Batch soll allerdings nur das verarbeiten, was in dem Ordner der jeweiligen Verknüpfung liegt.

PS: Klar, dass das Vorhaben auch dann klappt, wenn die berühmte Eigenschaft „Ausführen in“ der jeweiligen Verknüpfung mit dem Pfad ihres Verzeichnisses ergänzt wird, ist aber eine „Weich-Ei"-Methode – unschön und nur als Notlösung zu gebrauchen, da dies bei jeder Verknüpfung manuell angepasst werden muss.

Gruß
evinben
Mitglied: bastla
03.03.2012 um 16:39 Uhr
Hallo evinben!

Die ganz Harten würden da vermutlich %cd% verwenden ...

Grüße
bastla
Bitte warten ..
Mitglied: evinben
03.03.2012 um 18:28 Uhr
Hallo @bastla!

vielen Dank mit deiner exzellenten Bereitschaft!!!
Mit %CD% habe ich vor dem Posten schon mal probiert und das Verzeichnis der Verknüpfung wird nur dann angezeigt, wenn die Eigenschaft „Ausführen in“ lehr ist. Wenn allerdings eine Verknüpfung zu einer Datei erstellt wird (z. B. rechte Maustaste > Kopieren > Verknüpfung einfügen) dann wir die Eigenschaft „Ausführen in“ automatisch ausgefüllt. D. h. diese muss gelöscht werden, damit %CD% dann den richtigen Verzeichnispfad anzeigt, ansonsten zeigt die Variable den Verzeichnispfad der Verknüpfungsdatei an.

???

Wenn es nicht anders geht - also eine manuelle Nachbearbeitung nicht vermeidbar wäre, muss ich es einfach akzeptieren. Ich dachte mir, dass ihr eventuell wieder ausgefallene Lösungen parat habt ;).

Ansonsten benutze ich den vbs-Code von @Frimler Verknüpfung auf ungültiges Ziel erstellen zur Erstellung einer Verknüpfung. Hmm, was mir gerade jetzt einfällt, da wird die Eigenschaft „Ausführen in“ leider nicht behandelt.
Vielleich hast du eine Idee?

Gruß
evinben.
Bitte warten ..
Mitglied: bastla
03.03.2012 um 21:34 Uhr
Hallo evinben!

Wie jetzt - ich dachte, Du wolltest es ohne "Ausführen in" ...
da wird die Eigenschaft „Ausführen in“ leider nicht behandelt.
Da tust Du Friemler aber unrecht - er hat sehr wohl auch "WorkingDirectory" genannt ...
Wozu soll denn das Ganze dienen? Wenn es darum ginge, einen Batch aus verschiedenen Vezeichnissen aufrufen zu können, müsstest Du die Verknüpfung ja nur einmal erstellen, "Ausführen in" entfernen und könntest dann die .lnk-Datei ja an die gewünschten Orte kopieren ...

Grüße
bastla
Bitte warten ..
Mitglied: evinben
03.03.2012 um 22:14 Uhr
Hallo @bastla,

oh, Entschuldigung. Dann vertausche ich was: welche Methode wäre dann für die Eigenschaft „Ziel“ verantwortlich?

Danke schön

Gruß
evinben.

PS: Ich mache es so, wie du es geschrieben hast. Ich habe nur gehofft, dass der Pfad des Verzeichnisses, in dem die Verknüpfung sich befindet, ausgelesen werden kann, unabhängig von ihren gesetzten Eigenschaften.
Bitte warten ..
Mitglied: bastla
03.03.2012 um 22:19 Uhr
Hallo evinben!

Was in dem von Dir verlinkten Beitrag klingt denn am ehesten nach "Ziel"? (BTW: "TargetPath" ist eine Eigenschaft ("property"), keine Methode.)

Grüße
bastla
Bitte warten ..
Mitglied: evinben
04.03.2012 um 08:31 Uhr
Hallo @bastla,

danke dir, es stimmt. Die Frage war ein Fehler von mir, es fehlt etwas anders:
Heißt es dann, dass „WorkingDirectory“ sowohl die Eigenschaft „Ausführen in:“ als auch den Speicherort der Verknüpfung setzt?
Jetzt wird mir es verständlicher.

Gruß
evinben
Bitte warten ..
Mitglied: bastla
04.03.2012 um 11:32 Uhr
Hallo evinben!

Deine Frage ist mir nicht wirklich klar - der Speicherort wird ja bei der Erstellung des Objekts (per "CreateShortcut") angegeben ...

ZB hier findest Du (unter "Arbeiten mit Verknüpfungen") noch ein paar Infos zum Thema - ansonsten natürlich noch die MS-Doku dazu ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
04.03.2012 um 14:15 Uhr
Hallo evinben und bastla.

Ich weiß auch nicht wirklich worauf das hinaus läuft. Ich verstehe das so:
- Ein Batchfile wird über eine Verknüpfung aufgerufen.
- Der Batchcode soll ermitteln, wo die aufrufende Verknüpfung liegt.

Dazu fällt mir leider garnichts ein. Weder die Kommandozeile (%CMDCMDLINE%), noch der Parent-Prozess (über Umwege per WMIC zu finden) sagen irgendetwas darüber aus. Bleibt nur die von evinben so genannte „Weich-Ei"-Methode -- Die Eigenschaft "Ausführen in" leer lassen und fertig. Wurde ja bereits gesagt, dass der Batch dann im Verzeichnis der Verknüpfung ausgeführt wird -- Ergo %cd% beinhaltet dieses Verzeichnis, %~dp0 dagegen den Pfad der Batchdatei. Beides zusammen sollte doch jedwede Probleme lösen, oder?

Grüße
rubberman
Bitte warten ..
Mitglied: evinben
04.03.2012 um 16:12 Uhr
Hallo @bastla

irgendwie war eine Blockade in mir beim Auseinandersetzen mit dem Skript. Stimmt, es ist dumm von mir gewesen, da es in dem von mir angegebenen Link tatsächlich alle angefragten Eigenschaften angegeben waren.

Hallo @rubberman,
ich werde die „Weich-Ei“-Methode einsetzen: Die Verknüpfungen manuell zu erstellen, diese ohne der gesetzten Eigenschaft „Ausführen in“ zu verteilen, damit die Variable %CD% den korrekten Speicherort der Verknüpfung an die Batch-Datei übergeben kann, ist auch eine Lösung.
Zumindest habe ich probiert bessere Wege kennenzulernen. Wenn es aber noch keine Methode gibt den Pfad der Verknüpfung unabhängig von ihren gesetzten Eigenschaften an die verknüpfte Batch-Datei zu übermitteln, dann werde ich es akzeptieren müssen – "schlimm" ist es nicht.

Gruß
evinben
Bitte warten ..
Mitglied: rubberman
04.03.2012 um 18:23 Uhr
Hallo evinben.

Zitat von evinben:
ich werde die „Weich-Ei“-Methode einsetzen: Die Verknüpfungen manuell zu erstellen, diese ohne der gesetzten Eigenschaft „Ausführen in“ zu verteilen, damit die Variable %CD% den korrekten Speicherort der Verknüpfung an die Batch-Datei übergeben kann

Wie bastla bereits angemerkt hat, musst du nicht manuell erstellen, nur weil Eigenschaft „Ausführen in“ ohne Wert bleiben soll.
Du kannst auch explizit einen leeren String übergeben ...
objShortcut.WorkingDirectory = ""
... um auf Friemlers Beispiel zurück zu greifen. Wobei das simple Unterlassen, diese Eigenschaft zu definieren, bereits ausreichen sollte.

Grüße
rubberman
Bitte warten ..
Mitglied: evinben
05.03.2012 um 08:41 Uhr
Hallo rubberman,

da hast du recht. So habe ich es gelost (fast so):
01.
… 
02.
if defined LinkWorkingDirectory		echo objShortcut.WorkingDirectory="%LinkWorkingDirectory%">>%temp%\MakeShortCut.vbs 
03.
Die Eigenschaft “WorkingDirectory” ist für das vbs-Skript nicht zwingend erforderlich. Beim Auslassen funktioniert das Script weiterhin und in “Ausführen in“ der Verknüpfung steht nichts ;).
Danke und Entschuldigung für den etwas verwirrten Beitrag.

Gruß
evinben


edit: der Skript > das Skript
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Win-Batch - warum wird falscher Pfad übergeben
Frage von jan999Batch & Shell4 Kommentare

Moin! ich habe noch einmal eine Frage - vermutlich etwas blind, oder es liegt am "fehlenden Kaffee" (Insider zum ...

Batch & Shell
Batch Datei wird per Aufgabenplanung nicht ausgeführt
Frage von CorraggiounoBatch & Shell7 Kommentare

Hi, ich hoffe ihr könnt mir weiterhelfen. Folgende Konfiguration habe ich vorgenommen um ein batch-script auszuführen: Unter Programm/Skript habe ...

Batch & Shell
In einer Batch variable die Datei extension ermitteln ?
gelöst Frage von KriegstreiberBatch & Shell4 Kommentare

Servus, wieder einmal stehe ich vor einem Dilemmer wo die Lösung wahrscheinlich naheliegend ist, ich aber trotzdem nicht drauf ...

Batch & Shell
Variablen von Batch zu VBS übergeben
gelöst Frage von ciejayBatch & Shell10 Kommentare

Hallo liebe Com, ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger. ...

Neue Wissensbeiträge
Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 53 MinutenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...