Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

In Unterordner navigieren

Frage Entwicklung Batch & Shell

Mitglied: Michi262

Michi262 (Level 1) - Jetzt verbinden

23.01.2008, aktualisiert 25.01.2008, 3461 Aufrufe, 7 Kommentare

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

Mit freundlichen Grüßen Michi262
Mitglied: bastla
23.01.2008 um 23:57 Uhr
Hallo Michi262!

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\
01.
cd "ordner"
Die Anführungszeichen bräuchtest Du in diesem Fall (im Namen des Ordners sind keine Leerzeichen enthalten) nicht, aber sie schaden auch nicht.

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
01.
cd /d "%~dp0ordner"
bzw, falls Du etwa die Datei "Info.txt" aus dem fraglichen Ordner anzeigen wolltest
01.
type "%~dp0ordner\Info.txt"
Grüße
bastla
Bitte warten ..
Mitglied: Michi262
24.01.2008 um 02:44 Uhr

> nun weiß das Programm aber nich
wo es sich befindet.
Bist jetzt "Du" oder das Programm
in diesem Ordner?


Im ersten Pfad liegt das Programm. Und soll num im 2. Pfad was erledigen.

Danke mla. Ich werd das heut Nachmittag mal testen.

Mit freundlichen Grüßen Michi262
Bitte warten ..
Mitglied: lowbyte1
24.01.2008 um 05:29 Uhr
helo

cd "ordner"

oder du kannst mit dem pushd befehl der den aktuellen pfad speichert direkt den pfad angeben zudem du springen möchtest und anschlissend kannst du wider mit dem popd befehl zu dem gespeicherten pfad wechseln.

pushd "pfad"

danach wider zurück

popd




lowbyte
Bitte warten ..
Mitglied: Michi262
24.01.2008 um 10:05 Uhr
ja. das mit pushd und popd hab ich schon versucht.

Also die Bat wird ein Installer.

Es liegt die Bat Datei vor und in einem Unterordner die Daten. die er nach C:\Progreamme\... schieben soll. Allerdings weiß ja das Programm niocht in welchem Pfade es sich gerade befindet und deshlab kann ich die Dasten die im Unterordner liegen nich nach C:\Programme\... verschieben da er Sie nicth findet.

Michi262

PS: Weiß evtl. wer, wie ich es machen muss, das ich wie die Softwarefirmen einen Installer hinbekomme.
Bitte warten ..
Mitglied: Biber
24.01.2008 um 11:14 Uhr
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
Bitte warten ..
Mitglied: Michi262
24.01.2008 um 15:17 Uhr
Danke an alle.

ich hab das ganze so gelöst:
01.
copy "%cd%\..." "C:\Programme....
Mit dem Statz "wie die Softwarefirmen" meinte ich das ich das ganze über einen Installer machen möchte. Wie z. B. wenn ich Firefox installiere.

Michi26206
Bitte warten ..
Mitglied: Biber
25.01.2008 um 13:56 Uhr
Moin Michi262,

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 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
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Recursiv Unterordner anlegen Powershell (2)

Frage von Voiper zum Thema Batch & Shell ...

Exchange Server
gelöst Vererbung von Berechtigungen auf Unterordner in Outlook verhindern (6)

Frage von touro411 zum Thema Exchange Server ...

SAN, NAS, DAS
DSM Synology Unterordner erstellen - Freigabe über Computermanagement (3)

Frage von freeskierchris zum Thema SAN, NAS, DAS ...

Windows Server
Kein Zugriff auf Netzwerk-Unterordner - trotz Berechtigung?! (4)

Frage von ordi303 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...