45753

Von einem Verzeichnisbaum direkt in den selben Verzeichnisbaum meines Backup-Laufwerk wechseln können

Hallo zusammen

Ich stehe schon wieder vor einem Problem...

Ich möchte von z.B. Laufwerk D in mein Backup-Laufwerk mit einem Klick über das Sendto-Menü in dem die Batch dann liegen soll wechseln können und zwar in den selben Verzeichnisbaum wie auf D. Wenn ich also im Verzeichnis "D:\Storage\Net\Browser" mich gerade befinde, dann sollte also diese Batch in der Lage sein in mein Backup-Laufwerk nach z.B. "F:\Backup.PCBB\Storage\Net\Browser" wechseln zu können.

Meine Versuche endeten schon wieder bei "ECHO ist ausgeschaltet (off)" als ich versuchte eine variable mit echo auszugeben...

Ich kapier nicht weshalb ich da nicht durchsteige, denn die Lösung müste doch eigendlich total einfach sein:

echo bla > zzzzz1.txt
for /f %%i in (zzzzz1.txt) do echo %~pi [übergeben an variable]

und hier bleibe ich andauernd stecken... Ich bräuchte mal ein vernünftige tutorial über for-schleifen

Ich möchte nun dieses hier fortsetzen können:

explorer /n,/e,"F:\Backup%variable%"

So würde sich der Explorer dann automatisch in dem richtigen Verzeichniss auf meinem Backup-Laufwerk öffnen.

Danke schon mal im Vorraus
wobleibtdiezeit
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 55019

Url: https://administrator.de/forum/von-einem-verzeichnisbaum-direkt-in-den-selben-verzeichnisbaum-meines-backup-laufwerk-wechseln-koennen-55019.html

Ausgedruckt am: 08.05.2025 um 16:05 Uhr

45426
45426 26.03.2007 um 00:03:42 Uhr
Goto Top
Echo ohne Parameter gibt immer den momentanen Status von "Echo" aus.

Ist doch ganz einfach:

Die Batch bekommt als Variable den momentanen Pfad übergeben, aus dem sie aufgerufen wird.
Den bearbeitst du, dass der Laufwerksbuchstabe wegfällt:

set variable=%1 (Übergabeparameter)
set %variable:~3% (Übergabeparameter ab dem 4.Zeichen verwenden, beginnend bei 0)
explorer /n,/e,"F:\Backup\%variable%"


Alternative:

set variable=%1 (Übergabeparameter)
set %variable:~2% (Übergabeparameter ab dem 3.Zeichen verwenden, beginnend bei 0)
explorer /n,/e,"F:\Backup%variable%"
45753
45753 26.03.2007 um 01:37:06 Uhr
Goto Top
Danke haenschenpiepdochmal. Diese simple Lösung hat mir jedenfalls gezeigt, dass ich nur geringfügig Ahnung habe wie variablen funktionieren und wie man mit ihnen umzugeghen hat. Wo kann man in bezug auf die windows shell programmierung so etwas nachlesen? Die Shell-Hilfe zu den einzelnen befehlen ist meistens für mich einfach nicht zu verstehen. Was z.b. Token in For-Schleifen für eine Eigenschaft haben hab ich bis heute nicht kapiert. Auch durch rumprobiererei kam ich zu keinem ergebniss... Hast du eine Web-Seite für mich wo man so etwas vernünftig nachlesen kann ?

Eine Frage: wieso funktioniert mein oberes beispiel eigendlich nicht ?
Welchen parameter hätte ich denn nageben müssen ?
Deine Erklärungen zu deiner Version habe ich aber verstanden...
45426
45426 26.03.2007 um 01:52:06 Uhr
Goto Top
Deine Eingabe funktioniert wahrscheinlich deshalb nicht, weil "bla" keine Datei ist, die einem Pfad zugeordnet werden kann. face-wink

Die Windows-Hilfe gibt doch über fast alles recht umfassend Auskunft, wenn man sie füttert.

Steht alles drin:
Batch
Batchparameter
Befehlszeilenreferenz

Und dann auch mal auf die links unten vorhandene Volltextsuche achten und die "Verwandte Themen" in einem Hilfethema.

http://www.admini.de/batch-infos.htm
45753
45753 30.03.2007 um 23:57:19 Uhr
Goto Top
Das funktioniert leider alles nicht

bei der zeile
set %variable:~3%
bekomme ich die fehlerausgabe: Die Umgebungsvariable "~3" ist nicht definiert.

wenn ich dann ein "echo %variable%" in die nächste zeile setze, dann wird ausgegeben:
ECHO ist eingeschaltet (ON)

diese meldung bekomme ich auch in meinem oberen beispiel zu sehen.

Was ist die Ursache dafür?

Grüsse
wobleibtdiezeit
Biber
Biber 02.04.2007 um 16:56:43 Uhr
Goto Top
Moin wobleibtdiezeit,

die zweite Zeile in hpdm's beispiel ist etwas verkürzt.
Ändere also bitte:
set "variable=%1"  && REM Übergabeparameter  
REM ...streiche Buggyzeile set %variable:~3% 
set "variable=%variable:~3%"  && Übergabeparameter ab dem 4.Zeichen verwenden, beginnend bei 0  
explorer /n,/e,"F:\Backup\%variable%"  

Würde zum Beispiel bedeuten bei übergebenem Parameter 1 == F:\test\test.txt:
set "variable=%1"    && d.h.   Set variable=F:\test\test.txt"  
set "variable=%variable:~3%"  && ab dem 4.Zeichen verwenden, beginnend bei 0, d.h. variable="test.txt"  
explorer /n,/e,"F:\Backup\%variable%"  

Gleichbedeutend, aber lesbarer wäre:
set "variable=%~nx1"    && d.h.  Nimm nur Name+eXtension der übergebenen Datei OHNE Lw+Pfad  
:: bzw.
set "variable=%~pnx1"    && d.h.  Nimm Pfad+Name+eXtension der übergebenen Datei OHNE Lw. --- Der Pfad beginnt mit "\"  
explorer /n,/e,"F:\Backup\%variable%"  
..und entsprechend ebenso ausreichend:
explorer /n,/e,"F:\Backup%~pnx1"  
:: -- oder, da doppelte Backslashes dem CMD NICHT wehtun: explorer /n,/e,"F:\Backup\%~pnx1"  
Bezogen auf Dein FOR-Konstrukt ganz oben:
for /f "delims=" %%i in ("D:\Storage\Net\Browser") do explorer /n,/e,"F:\BackupPCBB%%~pnxi"  

Gruss
Biber
45753
45753 04.04.2007 um 18:14:16 Uhr
Goto Top
Dank dir Biber !

Ich brauch tatsächlich nur die Zeil

explorer /n,/e,"F:\Backup%~pnx1"

in die Batch zu packen und dann die Batch ins Sendto-Menü zu setzen.
Wenn ich dann im Explorer auf irgend ein Verzeichnis in meinem Laufwerk D mit der rechten Maustaste klicken und dann über das Sendto-Menü die Batch-Datei anwähle, öffnet die Batch ein neues Explorer-Fenster und ich befinde mich dann genau in dem selben Verzeichnis in meinem Backup Laufwerks auf F:\Backup\...

THX
45753
45753 04.04.2007 um 18:22:03 Uhr
Goto Top
Dank dir Biber !

Ich brauch tatsächlich nur die Zeil

explorer /n,/e,"F:\Backup%~pnx1"

in die Batch zu packen und dann die Batch ins Sendto-Menü zu setzen.
Wenn ich dann im Explorer auf irgend ein Verzeichnis in meinem Laufwerk D mit der rechten Maustaste klicken und dann über das Sendto-Menü die Batch-Datei anwähle, öffnet die Batch ein neues Explorer-Fenster und ich befinde mich dann genau in dem selben Verzeichnis in meinem Backup Laufwerks auf F:\Backup\...

THX