starter menu/usercommands und variablen problematik

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

starter menu/usercommands und variablen problematik

Post by *versalzen »

hallo,

ich hatte vor, mir einen einfachen starter-menu-befehl zu stricken*, der folgendes (auf der kommandozeile funktionierendes) ausführt:

Code: Select all

"%COMMANDER_DRIVE%\System Volume Information" /E /G %USERNAME%:F
natürlich soll nicht immer das laufwerk, auf welchem sich der tc befindet bearbeitet werden, aber mir ist leider noch keine variable untergekommen, die mir den aktuellen laufwerksbuchstaben ausgibt. evtl. könnte man %P experimentieren.

was aber problematischer ist, ist die tatsache, das ich es nicht gebacken* bekomme, das anständig für den tc umzusetzen.

weder mit den userbefehlen:

Code: Select all

[em_System_Volume_Information_entsperren]
Cmd=cacls
Param="%COMMANDER_DRIVE%\System Volume Information" /E /G %USERNAME%:F
menu=System Volume Information zugänglich machen
und aufgerufen aus dem starter-menu heraus mit

kommando: em_System_Volume_Information_entsperren

noch auf diese weise:

kommando: cacls
parameter: ?"\System Volume Information" /E /G %%USERNAME%%:F
startpfad: %COMMANDER_DRIVE%


ändere ich bei der parameterübergabe (getriggert durch das erste ? beim parameter) den usernamen händisch in meinen, klappt es problemlos.
es scheint, tc interessiert sich nicht für die variable %USERNAME%.

kann das sein?

und vor allem, wie komme ich zu meinem gewünschten ergebnis?


tipps, wie auch immer geartet, willkommen.


useful information:

*stricken=erstellen
*gebacken=schaffen

entsperren: "%COMMANDER_DRIVE%\System Volume Information" /E /G %USERNAME%:F
und wieder sperren: cacls "%COMMANDER_DRIVE%\System Volume Information" /E /P %USERNAME%:N

windows XP sp3
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

Param="%COMMANDER_DRIVE%\System Volume Information" /E /G %USERNAME%:F
In der Zeile "Parameter" müssen Prozentzeichen verdoppelt werden.
In der Zeile "Kommando" können sie verwendet werden wie auch auf der Kommandozeile.
kommando: cacls
parameter: ?"\System Volume Information" /E /G %%USERNAME%%:F
startpfad: %COMMANDER_DRIVE%
Das funktioniert hier problemlos, wenn ich das Kommando "cacls" ersetze durch "%comspec% /k echo",
das die endgültig verwendete Befehlszeile anzeigt.
Vielleicht braucht %%USERNAME%% noch Anführungszeichen, falls der Username Leerzeichen oder Sonderzeichen beinhaltet.
Bei enthaltenen Umlauten könnte auch der Zeichensatz noch eine Rolle spielen (ANSI/ASCII bzw. OEM).
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

2versalzen
Vielleicht so?
kommando: %comspec% /c cacls "\System Volume Information" /E /G %USERNAME%:F
parameter: <leer>
startpfad: <leer>
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Post by *versalzen »

hallo ihr beiden, danke für die hilfestellung.
besonders für den tipp mit "%comspec% /k echo".
somit ist ein testen nunmehr sehr einfach.

habe es, mit eurer hilfe, so gelöst:

Code: Select all

[em_System_Volume_Information_entsperren]
Cmd=%comspec% /c cacls
Param="%PSystem Volume Information" /E /G "%%USERNAME%%":F
path=
menu=System Volume Information zugänglich machen
oder:

kommando: %comspec% /c cacls
parameter: ?"%PSystem Volume Information" /E /G "%%USERNAME%%":F
startpfad: <leer>


dieser versuch funktionierte leider nicht, weiss jemand wieso? wohl wegen der anführungszeichen, weil das resultat dann so aussehen würde: E:\"System Volume Information" /E /G "heinz":F
kommando: %comspec% /c cacls
parameter: ?"System Volume Information" /E /G "%%USERNAME%%":F
startpfad: %P


@StatusQuo:
du schreibst "In der Zeile "Parameter" müssen Prozentzeichen verdoppelt werden."
ich verstehe allerdings nicht genau, worauf du dich damit beziehst.
es scheint auch so zu funktionieren. %P <= ein prozentzeichen / %%USERNAME%% <= zwei prozentzeichen
bezogen auf die o.g. zeile: parameter: ?"%PSystem Volume Information" /E /G "%%USERNAME%%":F


habt nochmal vielen dank!
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

2versalzen
du schreibst "In der Zeile "Parameter" müssen Prozentzeichen verdoppelt werden."
ich verstehe allerdings nicht genau, worauf du dich damit beziehst.
es scheint auch so zu funktionieren. %P <= ein prozentzeichen / %%USERNAME%% <= zwei prozentzeichen
Genau, gemeint waren doppelte Prozentzeichen bei Verwendung von Systemvariablen -
%USERNAME% in der Zeile "Kommando" oder %%USERNAME%% in der Zeile "Parameter".

%P ist eine interne TC-Variable, deshalb reicht in der Zeile "Parameter" je ein einzelnes Prozentzeichen
(in der Zeile "Kommando" funktioniert sie nicht).
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
Post Reply