45753
Goto Top

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

Content-Key: 55019

Url: https://administrator.de/contentid/55019

Printed on: April 16, 2024 at 18:04 o'clock

Mitglied: 45426
45426 Mar 25, 2007 at 22:03:42 (UTC)
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%"
Mitglied: 45753
45753 Mar 25, 2007 at 23:37:06 (UTC)
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...
Mitglied: 45426
45426 Mar 25, 2007 at 23:52:06 (UTC)
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
Mitglied: 45753
45753 Mar 30, 2007 at 21:57:19 (UTC)
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
Member: Biber
Biber Apr 02, 2007 at 14:56:43 (UTC)
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
Mitglied: 45753
45753 Apr 04, 2007 at 16:14:16 (UTC)
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
Mitglied: 45753
45753 Apr 04, 2007 at 16:22:03 (UTC)
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