Hallo und willkommen im Forum.
T_a_u_r_e_c wrote:Ich brauche einen Button der mir im gegenüberliegenden Fenster
den gleichen Ordner, der aber auf einem NAS liegt, öffnet
Im linken Fenster ist der Pfad:
c:\Arbeit\Projekte\2015001001\Anleitungen\Visualisierung\
geöffnet.
Mit einem Button klick soll im rechten Fenster der Pfad:
\\NAS\Backup\Projekte\2015001001\Anleitungen\Visualisierung\
geöffnet werden.
Das Script soll also den ersten Teil des Pfades austauschen und als Öffnen Befehl an das zweite Fenster übergeben.
Mit PowerShell
1.) Hole den aktuellen Pfad im aktiven Fenster mittels %P
2.) Ersetze 'c:\Arbeit\' mit '\\NAS\Backup\'
3.) Öffne den neuen Pfad im laufenden TC im gerade inaktiven Fenster
Dazu lege einen Button
(click) (oder user commando
(click) ) im TotalCommander an:
Code: Select all
Kommando/cmd
PowerShell -NoExit -NoProfile -ExecutionPolicy Bypass
Parameters/param
$TARGET='%P' -replace('c:\\Arbeit\\', '\\NAS\Backup\'); """$env:Commander_Exe /O /S /R=$TARGET""";
- - -
Erklärung:
Der TC-Button (bzw. das User-Kommando) startet eine PowerShell, diese führt ein Suchen&Ersetzen
am übergebenen Source-Path aus, und öffnet den so erzeugten neuen Pfad im TC Target Panel.
$TARGET='%P' -replace('c:\\Arbeit\\', '\\NAS\Backup\');
$TARGET is eine PoSh Variable,
-replace("x","y") ein PoSh Befehl, welcher standardmäßig mit RegEx arbeitet, daher wurde der Backslash im "Suchenteil" escaped.
%P ist ein TC-eigener Parameter. Mehr Info: klicke Rechts auf einen Button, wähle "Ändern", drücke die F1-Taste...
Hilfe > Index > [Programmparameter ]
%P bewirkt, dass der Pfad des Quellverzeichnisses in die Kommandozeile gestellt wird (inkl. \ am Ende).
"""$env:Commander_Exe /O /S /R=$TARGET""";
Im TC muss ich die Quotes escapen: " >>>
"""
$env: ist ein PoSh Befehl um die Umgebungsvariable %Commander_Exe% auszulesen.
/O/S/R sind TC Parameter. Mehr Info: drücke die F1-Taste, >>> Konfiguration und Parameter >>> Kommandozeilenparameter
Hilfe > Inhalt > Konfiguration und Parameter > Kommandozeilenparameter
Syntax:
totalcmd.exe [/o] [/n] [/L=LW:\Verzeichnis1] [/R=LW:\Verzeichnis2] [/i=name.ini] [/F=ftpname.ini]
Parameter:
/O Falls Total Commander bereits läuft, aktivieren und Pfad(e) an dieses Programm übergeben
/L= Setze Pfad des linken Fensters (bzw. Quelle, Aktiv)
/R= Setze Pfad des rechten Fensters (bzw. Ziel, Inaktiv)
/S Interpretiert die übergebenen Verzeichnisse als Quelle/Ziel statt links/rechts (für Benutzung mit /O).
HTH?
EDIT: Expliziter Hinweis zum Erstellen eines Buttons bzw. User-Kommandos in TC hinzugefügt.