In Unterordner navigieren
Hallo
ich hab ein Problem un zwar:
Ich möchte in einen Unterordner navigiern. Allerdings soll das auch gehen, wenn das Programm an einem beliebigen Pfad liegt.
z. B. Ich bin im Ordner C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\
und will nun in das Verzeichnis C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\ordner\
nun weiß das Programm aber nich wo es sich befindet. Es hat also keine Ahnung das es im Verzeichnis C:\Dokumente und
Einstellungen\Admin\Eigene Dateien\xyz\ liegt. Wie lmache ich das nun, dass ich egal wo das Programm liegt immer in den Unterordner
komme
MFG Michi262
ich hab ein Problem un zwar:
Ich möchte in einen Unterordner navigiern. Allerdings soll das auch gehen, wenn das Programm an einem beliebigen Pfad liegt.
z. B. Ich bin im Ordner C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\
und will nun in das Verzeichnis C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\ordner\
nun weiß das Programm aber nich wo es sich befindet. Es hat also keine Ahnung das es im Verzeichnis C:\Dokumente und
Einstellungen\Admin\Eigene Dateien\xyz\ liegt. Wie lmache ich das nun, dass ich egal wo das Programm liegt immer in den Unterordner
komme
MFG Michi262
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78984
Url: https://administrator.de/contentid/78984
Ausgedruckt am: 16.11.2024 um 09:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Michi262!
Die Anführungszeichen bräuchtest Du in diesem Fall (im Namen des Ordners sind keine Leerzeichen enthalten) nicht, aber sie schaden auch nicht.
Den vollständigen Pfad samt Namen der soeben ausgeführten Batchdatei erhältst Du mit "%~f0" (siehe dazu am Ende der Hilfe zu "for", also mit "for /?"; die dort beschriebene "Ersetzung von Verweisen" funktioniert auch mit den Parametern %0 bis %9 einer Batchdatei, wobei eben %0 die Batchdatei selbst angibt).
Da nur Laufwerk und Pfad, nicht aber Name und Extension benötigt werden, wäre der entsprechende Befehl
bzw, falls Du etwa die Datei "Info.txt" aus dem fraglichen Ordner anzeigen wolltest
Grüße
bastla
Ich bin im Ordner C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\ und will nun in das Verzeichnis C:\Dokumente und Einstellungen\Admin\Eigene Dateien\xyz\ordner\
cd "ordner"
nun weiß das Programm aber nich wo es sich befindet.
Bist jetzt "Du" oder das Programm in diesem Ordner?Den vollständigen Pfad samt Namen der soeben ausgeführten Batchdatei erhältst Du mit "%~f0" (siehe dazu am Ende der Hilfe zu "for", also mit "for /?"; die dort beschriebene "Ersetzung von Verweisen" funktioniert auch mit den Parametern %0 bis %9 einer Batchdatei, wobei eben %0 die Batchdatei selbst angibt).
Da nur Laufwerk und Pfad, nicht aber Name und Extension benötigt werden, wäre der entsprechende Befehl
cd /d "%~dp0ordner"
type "%~dp0ordner\Info.txt"
Grüße
bastla
PS: Weiß evtl. wer, wie ich es machen muss, das ich wie die Softwarefirmen einen Installer hinbekomme.
Ein Schritt in diese Richtung wäre, die Antworten auf Deine Fragen auch zu lesen.Siehe oben bastlas Ausführungen ( cd /d "%~dp0ordner") und wenige Zentimeter tiefer lowbyte1s Ergänzungen (Pushd/PopD).
Wie gesagt, es wäre zumindest ein erster Schritt... könnte sein, dass es noch ein paar Tage dauern wird, bis Du den Softwarefirmen Konkurrenz machen kannst.
Grüße
Biber
Moin Michi262,
Deine Lösung
Bullshit nicht sonderlich robust.
die dynamische Variable %cd% gibt das aktuelle Verzeichnis an.
Sprich: wenn Du im Verzeichnis "D:\Temp" stehst und vom CMD-Prompt aus den Batch "R:\Setup\Install.bat" aufrufst, dann sind
%cd% == das Aktuelle Verzeichnis == "D:\temp"
%~dp0 im "Install-Bat"-Batch hat den Wert "R:\Setup"
Und Du brauchst m.E. den zweiten Wert.
Wenn Du aus dem Verzeichnis "R:\Setup" den Batch aufrufst, dann stimmen zwar beide Variablen überein, aber in diesem Fall brauchst Du ja gar keine, sondern nur die relative Pfadangabe "..\Parallelverzeichnis\bla.bat"
Grüße
Biber
Deine Lösung
ich hab das ganze so gelöst:
copy "%cd%\..." "C:\Programme....
... möchte ich nur ungern als Lösung so stehen lassen. Ist IMHO copy "%cd%\..." "C:\Programme....
die dynamische Variable %cd% gibt das aktuelle Verzeichnis an.
Sprich: wenn Du im Verzeichnis "D:\Temp" stehst und vom CMD-Prompt aus den Batch "R:\Setup\Install.bat" aufrufst, dann sind
%cd% == das Aktuelle Verzeichnis == "D:\temp"
%~dp0 im "Install-Bat"-Batch hat den Wert "R:\Setup"
Und Du brauchst m.E. den zweiten Wert.
Wenn Du aus dem Verzeichnis "R:\Setup" den Batch aufrufst, dann stimmen zwar beide Variablen überein, aber in diesem Fall brauchst Du ja gar keine, sondern nur die relative Pfadangabe "..\Parallelverzeichnis\bla.bat"
Grüße
Biber