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?

Mitglied: evinben

evinben (Level 2) - Jetzt verbinden

03.03.2012, aktualisiert 30.04.2012, 9725 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

Welche Codierung für txt files um in einer batch Datei richtig aufgerufen werden zu können?

Frage von patme1Batch & Shell3 Kommentare

Hi! Ich habe eine txt Datei, welche ich in einer batch file einlesen möchte. In dieser sind Sonderzeichen, wie ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 4 StundenGoogle Android2 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 5 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 8 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server39 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing18 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...