Zu äquivalentem Unterverzeichnis springen?
Moderators: white, Hacker, Stefan2
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Zu äquivalentem Unterverzeichnis springen?
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?
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
Commanding Win10 64bit totally with version 11
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Naja...ich bin noch einen Schritt vorher.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
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
Commanding Win10 64bit totally with version 11
Re: Zu äquivalentem Unterverzeichnis springen?
1) Linkes Panel : F:\Cloudstation\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
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
schau dir mal dieses Skript an > viewtopic.php?p=324984#324984Dennis_Stevens wrote: Springe das im Quellpanel ausgewählte Unterverzeichnis des PC auf dem Zielpanel im Verzeichnisbaum des Fileservers an.
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?
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Re: Zu äquivalentem Unterverzeichnis springen?
Super! Das scheint genau das zu sein was ich brauche!Stefan2 wrote:1) Linkes Panel : F:\Cloudstation\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
2) Rechtes Panel: X:\Public\Userx\
3) TC Kommandozeile: cm_SyncChangeDir
4) nun kannst du synchron die Ordner wechseln...
Wenn du nur das möchtestschau dir mal dieses Skript an > viewtopic.php?p=324984#324984Dennis_Stevens wrote: Springe das im Quellpanel ausgewählte Unterverzeichnis des PC auf dem Zielpanel im Verzeichnisbaum des Fileservers an.
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?
Vielen Dank!
#230412 Single User Licence
Commanding Win10 64bit totally with version 11
Commanding Win10 64bit totally with version 11
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Re: Zu äquivalentem Unterverzeichnis springen?
Schade. Ich mache da etwas noch nicht richtig.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%"
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
Commanding Win10 64bit totally with version 11
PowerShell: Ändere Pfad, öffne im anderen Fenster
>> 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'"")
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.
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Re: PowerShell: Ändere Pfad, öffne im anderen Fenster
Jaaa.....da gibt es jetzt das Problem, dass PowerShell mit "Commander_Exe" wohl seine liebe Not hat. Da kommt dann die MeldungStefan2 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?
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
Commanding Win10 64bit totally with version 11
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
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?
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
Commanding Win10 64bit totally with version 11
-
- Senior Member
- Posts: 215
- Joined: 2013-06-08, 16:16 UTC
- Location: NRW, Germany
Super! Das funktioniert ganz hervorragend.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'"");
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
Commanding Win10 64bit totally with version 11