Zu äquivalentem Unterverzeichnis springen?

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Zu äquivalentem Unterverzeichnis springen?

Post by *Dennis_Stevens »

Mahlzeit :)

Folgende Situation:

Verzeichnis auf Harddisk:
F:\Cloudstation\Multimedia\Fotos\2017\04\Irgendeinereignis

Verzeichnis auf entferntem Datenträger:
X:\Public\Userx\Multimedia\Fotos\2017\04\Irgendeinereignis

Aufgrund des Datensyncs mit dem Fileserver sind diese Strukturen stets identisch.
Auf dem PC spielt sich also alles unterhalb von Cloudstation ab und auf dem Fileserver unterhalb von Public\Userx.

Kann ich dem TC das Folgende beibringen:
Springe das im Quellpanel ausgewählte Unterverzeichnis des PC auf dem Zielpanel im Verzeichnisbaum des Fileservers an.

Bin ich also auf dem PC in F:\Cloudstation\Multimedia\Fotos, dann springe nach X:\Public\Userx\Multimedia\Fotos, bin ich in F:\Cloudstation\Multimedia\Fotos\2017\04, dann springe nach X:\Public\Userx\Multimedia\Fotos\2017\04

Jeht dat?
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
User avatar
Dalai
Power Member
Power Member
Posts: 9386
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Siehe cm_SyncChangeDir - Synchroner Verzeichniswechsel in beiden Fenstern. Hab ich bei mir auf einem Button liegen, und findet in derartigen Fällen Verwendung.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Post by *Dennis_Stevens »

Dalai wrote:Siehe cm_SyncChangeDir - Synchroner Verzeichniswechsel in beiden Fenstern. Hab ich bei mir auf einem Button liegen, und findet in derartigen Fällen Verwendung.

Grüße
Dalai
Naja...ich bin noch einen Schritt vorher.
Im Zielfenster ist zb noch C:\Windows ausgewählt.
Oder verstehe ich Dich falsch?
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Zu äquivalentem Unterverzeichnis springen?

Post by *Stefan2 »

Dennis_Stevens wrote:
Verzeichnis auf Harddisk:
F:\Cloudstation\Multimedia\Fotos\2017\04\Irgendeinereignis

Verzeichnis auf entferntem Datenträger:
X:\Public\Userx\Multimedia\Fotos\2017\04\Irgendeinereignis
1) Linkes Panel   : F:\Cloudstation\
2) Rechtes Panel: X:\Public\Userx\
3) TC Kommandozeile: cm_SyncChangeDir
4) nun kannst du synchron die Ordner wechseln...



Wenn du nur das möchtest
Dennis_Stevens wrote: Springe das im Quellpanel ausgewählte Unterverzeichnis des PC auf dem Zielpanel im Verzeichnisbaum des Fileservers an.
schau dir mal dieses Skript an > viewtopic.php?p=324984#324984

Dies könnte man anpassen / neu schreiben.



Einfach die Standardpfade austauschen,
und dann den angepassten Pfad im anderen Panel öffnen.

Original = "%P"
IF Original -Like "F:\Cloudstation\*"
  Target = replace(Original, "F:\Cloudstation", "X:\Public\Userx")
ELSE
  Target = replace(Original, "X:\Public\Userx", "F:\Cloudstation")
"%Commander_Exe%" /O /S /R="%Target%"

Und danach noch cm_SyncChangeDir ausführen?





  
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Re: Zu äquivalentem Unterverzeichnis springen?

Post by *Dennis_Stevens »

Stefan2 wrote:
Dennis_Stevens wrote:
Verzeichnis auf Harddisk:
F:\Cloudstation\Multimedia\Fotos\2017\04\Irgendeinereignis

Verzeichnis auf entferntem Datenträger:
X:\Public\Userx\Multimedia\Fotos\2017\04\Irgendeinereignis
1) Linkes Panel   : F:\Cloudstation\
2) Rechtes Panel: X:\Public\Userx\
3) TC Kommandozeile: cm_SyncChangeDir
4) nun kannst du synchron die Ordner wechseln...



Wenn du nur das möchtest
Dennis_Stevens wrote: Springe das im Quellpanel ausgewählte Unterverzeichnis des PC auf dem Zielpanel im Verzeichnisbaum des Fileservers an.
schau dir mal dieses Skript an > viewtopic.php?p=324984#324984

Dies könnte man anpassen / neu schreiben.



Einfach die Standardpfade austauschen,
und dann den angepassten Pfad im anderen Panel öffnen.

Original = "%P"
IF Original -Like "F:\Cloudstation\*"
  Target = replace(Original, "F:\Cloudstation", "X:\Public\Userx")
ELSE
  Target = replace(Original, "X:\Public\Userx", "F:\Cloudstation")
"%Commander_Exe%" /O /S /R="%Target%"

Und danach noch cm_SyncChangeDir ausführen?

  
Super! Das scheint genau das zu sein was ich brauche!
Vielen Dank! :)
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Re: Zu äquivalentem Unterverzeichnis springen?

Post by *Dennis_Stevens »

Stefan2 wrote: Original = "%P"
IF Original -Like "F:\Cloudstation\*"
  Target = replace(Original, "F:\Cloudstation", "X:\Public\Userx")
ELSE
  Target = replace(Original, "X:\Public\Userx", "F:\Cloudstation")
"%Commander_Exe%" /O /S /R="%Target%"
Schade. Ich mache da etwas noch nicht richtig.

Diese Schritte habe ich gemacht:

1.) CMD-Datei geschrieben mit dem zitierten Inhalt
2.) Button erstellt: Kommando = Pfad zur CMD-Datei, Parameter = %P

Die Command-Datei wird zwar ohne Fehlermeldung ausgeführt, aber nix passiert.
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

PowerShell: Ändere Pfad, öffne im anderen Fenster

Post by *Stefan2 »

>> Dies könnte man anpassen

Sorry, ich muss mir wirklich angewöhnen, "Pseudo-Code" an meine Idee-Vorschläge dran zuschreiben.


- - -


Probier mal das folgende PowerShell Skript in einem Button:



Kommando: PowerShell -NoExit -NoProfile -ExecutionPolicy Bypass


Parameters: $Z='%P';IF($Z -Like """F:\Cloudstation\*"""){$Z=$Z -replace('F:\\Cloudstation\\','X:\Public\Userx\')}else{$Z=$Z -replace('X:\\Public\\Userx\\','F:\Cloudstation\')};& $env:Commander_Exe /O /S /R="""$Z""";

^^^ das ist eine lange Zeile ^^^







Aufgedrösselt:

$Z='%P';
IF($Z -Like """F:\Cloudstation\*"""){
$Z=$Z -replace('F:\\Cloudstation\\','X:\Public\Userx\')
}else{
$Z=$Z -replace('X:\\Public\\Userx\\','F:\Cloudstation\')
};
& $env:Commander_Exe /O /S /R="""$Z"""



Ein bisschen viel Quotings, aber dass mach der Aufruf vom TC aus notwendig: " > """
Deshalb kann man, wo es möglich ist, mit einfachen '...' arbeiten (google "powershell string quoting")

PowerShell "-Replace" arbeitet mit RegEx, daher müssen die Backslash "escape" werden: \ > \\

Im TC-Button drücke die F1 Taste um mehr über die Kommando-Parameter wie %P zu lesen.
Und lese in der Hilfe mehr über die Kommandozeilen-Parameter wie /O und /R.




- - -


Der selbe Befehl, aber mit ein bisschen Debugging:

$Z='%P';'Param: '+$Z; IF($Z -Like """F:\Cloudstation\*"""){'Yes';$Z=$Z -replace('F:\\Cloudstation\\','X:\Public\Userx\')}else{'No';$Z=$Z -replace('X:\\Public\\Userx\\','F:\Cloudstation\')};'New: '+$Z; & $env:Commander_Exe /O /S /R="""$Z"""




HTH?


- - -

EDIT:

Verwende:
& $env:Commander_Exe /O /S /R="""$Z"""
anstelle von:
Invoke-Expression $("""$env:Commander_Exe /O /S /R='$Z'"")
Last edited by Stefan2 on 2017-06-24, 19:59 UTC, edited 1 time in total.
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Re: PowerShell: Ändere Pfad, öffne im anderen Fenster

Post by *Dennis_Stevens »

Stefan2 wrote:
Der selbe Befehl, aber mit ein bisschen Debugging:

$Z='%P';'Param: '+$Z; IF($Z -Like """F:\Cloudstation\*"""){'Yes';$Z=$Z -replace('F:\\Cloudstation\\','X:\Public\Userx\')}else{'No';$Z=$Z -replace('X:\\Public\\Userx\\','F:\Cloudstation\')};'New: '+$Z;Invoke-Expression $("""$env:Commander_Exe /O /S /R='$Z'"");



HTH?
Jaaa.....da gibt es jetzt das Problem, dass PowerShell mit "Commander_Exe" wohl seine liebe Not hat. Da kommt dann die Meldung

Code: Select all

C:\Program : Die Benennung "C:\Program" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ C:\Program Files\totalcmd\TOTALCMD64.EXE /O /S /R='F:\Cloudstation\Mu ...
+ ~~~~~~~~~~
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Post by *Dennis_Stevens »

Es liegt anscheinend daran, dass der TC nach /R= Anführungszeichen (") erwartet. Das Skript übergibt den Pfad aber mit ' .
Wie löst man das?
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Post by *Dennis_Stevens »

Ich habe auch mal die Power-Shell Skripte aus den anderen verlinkten Threads ausprobiert. Die setzen alle den an den TC übergebenen Pfad nicht in " .
Muss ich dem TC noch irgendwas in der INI vermitteln, damit der den Pfad ohne " oder in ' annimmt?
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Hi Dennis_Stevens

Ja Quoting is immer tricky, und dann noch mit dem TC Interpreter zwischen drin...

- - -

Probier mal

& $env:Commander_Exe /O /S /R="""$Z"""



statt
Invoke-Expression $("""$env:Commander_Exe /O /S /R='$Z'"");




 
Dennis_Stevens
Senior Member
Senior Member
Posts: 215
Joined: 2013-06-08, 16:16 UTC
Location: NRW, Germany

Post by *Dennis_Stevens »

Stefan2 wrote:Hi Dennis_Stevens

Ja Quoting is immer tricky, und dann noch mit dem TC Interpreter zwischen drin...

- - -

Probier mal

& $env:Commander_Exe /O /S /R="""$Z"""



statt
Invoke-Expression $("""$env:Commander_Exe /O /S /R='$Z'"");
Super! Das funktioniert ganz hervorragend.
Und mit Exit am Ende geht sogar das Fenster zu! :)

Vielen Dank! Top-Lösung! ;)


Wobei.... gefühlt müsste das ne Standard-Funktion vom TC sein.
Ebenso das synchrone Scrollen bei cm_SyncChangeDir ...
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
Post Reply