{"id":7060,"date":"2020-12-30T23:10:48","date_gmt":"2020-12-30T21:10:48","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=7060"},"modified":"2020-12-30T23:10:49","modified_gmt":"2020-12-30T21:10:49","slug":"absolute-pfade-in-batch-und-bash-skripten-zum-aufruf-aus-anderen-ordnern-heraus-verwenden-pfad-des-skriptes-statt-aufrufers-ermitteln","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/absolute-pfade-in-batch-und-bash-skripten-zum-aufruf-aus-anderen-ordnern-heraus-verwenden-pfad-des-skriptes-statt-aufrufers-ermitteln\/","title":{"rendered":"Absolute Pfade in Batch und Bash-Skripten zum Aufruf aus anderen Ordnern heraus verwenden: Pfad des Skriptes statt Aufrufers ermitteln"},"content":{"rendered":"<p>Wenn man Skripte \u00fcber den absoluten Pfad aufruft, m\u00fcssen alle Aufrufe innerhalb des Skriptes ebenfalls absolut sein. Ansonsten funktioniert der Aufruf nur, sofern man zun\u00e4chst in das Skriptverzeichnis wechselt und das Skript von dort ausf\u00fchrt. Je nach Anwendungszweck kann das passabel sein. Doch besser ist es, diesen Anwendungsfall direkt zu bedenken. Hierf\u00fcr ben\u00f6tigt man nur den Pfad des Skriptes, der jeglichen Aufrufen vorangestellt wird. Dann spielt es keine Rolle, ob man sich im Arbeitsverzeichnis befindet oder nicht. <\/p>\n<p>Folgender Artikel soll dies f\u00fcr die Linux-Bash zeigen, aber auch Batch-Skripte f\u00fcr Windows. Im Beispiel verwenden wir eine ausf\u00fchrbare Datei <strong>ffmpeg<\/strong>, die sich im Ordner des jeweiligen Skriptes befindet.<\/p>\n<h2 class=\"wp-block-heading\">Skript-Pfad unter Linux Bash ermitteln<\/h2>\n<p>Unter Linux liefert uns <strong>dirname &#8222;$0&#8220;<\/strong> den Ordnerpfad zum aktuellen Skript. <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n#!\/bin\/bash\ncwd=$(dirname &quot;$0&quot;)\n${cwd}\/ffmpeg\n<\/pre>\n<\/div>\n<h2 class=\"wp-block-heading\">Skript-Pfad unter Windows Batch ermitteln<\/h2>\n<p>Bei Windows Batch wird es etwas kryptischer. Hier f\u00fchrt uns die Variable <strong>%~dp0<\/strong> zum Ziel.<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n@echo &quot;Check ffmpeg version&quot;\n@set cwd=%~dp0\n%cwd%ffmpeg -version\npause\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man Skripte \u00fcber den absoluten Pfad aufruft, m\u00fcssen alle Aufrufe innerhalb des Skriptes ebenfalls absolut sein. Ansonsten funktioniert der Aufruf nur, sofern man zun\u00e4chst in das Skriptverzeichnis wechselt und das Skript von dort ausf\u00fchrt. Je nach Anwendungszweck kann das passabel sein. Doch besser ist es, diesen Anwendungsfall direkt zu bedenken. Hierf\u00fcr ben\u00f6tigt man nur &#8230;<\/p>\n","protected":false},"author":5,"featured_media":7062,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[844,845,846],"class_list":["post-7060","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwareentwicklung","tag-bash","tag-batch","tag-skripte"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=7060"}],"version-history":[{"count":2,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7060\/revisions"}],"predecessor-version":[{"id":7063,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7060\/revisions\/7063"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/7062"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=7060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=7060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=7060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}