alias, der "überall" gefunden wird?

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.

alias, der "überall" gefunden wird?

Post by *versalzen »

hallo,

die möglichkeit, aliase ([Alias]) in der wincmd.ini anzulegen ist eine super sache.

ich habe allerdings eine menge programme, die ich gerne einfach mit ihrem dateinamen aufrufen würde, nicht aber alle als alias definieren (weil: viel zu viel arbeit und ich müsste die liste ständig up2date halten) möchte.

gibt es eine möglichkeit, tc einen bestimmten pfad (innerhalb %COMMANDER_PATH%) durchsuchen zu lassen, um die auf der kommandozeile aufgerufenen ausführbaren programme innerhalb dises pfades auszuführen, *OHNE* die windows-systemvariable %PATH% auf jedem host-system verändern zu müssen?

bis dato habe ich eine vage idee, mittels alias:

Code: Select all

path=set path=%path%;%COMMANDER_PATH%;
aber das wird nicht gewünscht funktionieren.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

TC über eine Batch, der im TC Verzeichnis liegt, starten:
set path=%path%;%CD%
start totalcmd.exe
%CD% entspricht dabei dem %COMMANDER_PATH%

HTH,
Holger
icfu
Power Member
Power Member
Posts: 6052
Joined: 2003-09-10, 18:33 UTC

Post by *icfu »

Da das ganze eh nur funktioniert, wenn die Exe-Dateien allesamt genau in diesem Verzeichnis liegen – Unterordner werden ignoriert – kann man auch gleich einen vernünftigen Starter nutzen:
http://www.executor.dk/

Das gewünschte Verzeichnis auf dem Tab "Indexing, bla" eintragen und Exe als gewünschte Dateiendung.

Icfu
This account is for sale
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Post by *versalzen »

etwas zeitunnah, aber dennoch danke für eure vorschläge.

ich werde wohl nach weiteren möglichkeiten forschen müssen, denn die idee mit der batch-datei wäre zwar schön und klein, ist aber nicht schnell genug :)
wenn ich mich im explorer erst über meinen usb-stick ins richtige verzeichnis hangeln muss, damit ich den tc starten kann, ist das leider nicht befriedigend genug. bis dato nutze ich die starttc.exe (aus dem paket tc2usb), welche im hauptverzeichnis des usb-sticks liegt und so bequem den tc startet.

den executor, der zwar sehr mächtig ist, zuerst auf einem gast-pc zu starten um ihn dann den tc starten zu lassen ist auch nicht das wahre :)

allerdings hatte ich diese einschränkenden infos ja bei meiner ursprünglichen frage garnicht übermittelt.

evtl. gibt es eine möglichkeit der starttc.exe parameter zu übergeben? ich habe keine gefunden.

meine bisherige lösung ist folgende batch-datei:

Code: Select all

@reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" path_tc.cmd.%COMPUTERNAME%.bak.reg
@reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_EXPAND_SZ /d "%path%;%COMMANDER_PATH%\exe\;" /f
die erste zeile "backupt" den teil der registry, den ich evtl zerstöre :-)
die zweite zeile setzt den neuen pfad.

das klappt soweit, das der erweiterte pfad an der richtigen stelle der registry steht, aber leider interessiert das windows nicht. jedes neu geöffnete dos-fenster hat noch den alten pfad.

ich habe nun mittels tc-plugin "envvar.wfx" (mit dem man umgebungsvariablen in echtzeit setzen kann) und einem registry-monitor geprüft, welche werte sich beim ändern über dieses plugin und wo genau ändern und habe nur die oben in der batch-datei angegebene stelle gefunden.
interessanterweise funktioniert eine pfadänderung über das plugin einwandfrei, d.h. neu geöffnete dos-fenster haben den richtigen, erweiterten pfad. (cmd.exe geöffnet über START->AUSFÜHREN und auch über die kommandozeile des tc)
im registry-monitor sehe ich noch, das auch der explorer.exe mit dem neuen pfad von dem plugin aufgerufen wird. deswegen nehme ich an, das mir genau dieses "aktualisieren" in der batchdatei fehlt.

kann mir evtl. jemand einen tipp geben oder hat eine idee, wo ich weiter ansetzen kann/soll/muss?
nun wird es ja nicht mehr so tc spezifisch.

danke im voraus
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

versalzen wrote:..., denn die idee mit der batch-datei wäre zwar schön und klein, ist aber nicht schnell genug :)
wenn ich mich im explorer erst über meinen usb-stick ins richtige verzeichnis hangeln muss, damit ich den tc starten kann,...
TCStart.cmd im Hauptverzeichnis des USBSticks wrote:cd .\Tools\totalcmd
set path=%path%;%CD%
start totalcmd.exe
:?:
Gruß,
Holger
User avatar
versalzen
Power Member
Power Member
Posts: 670
Joined: 2003-09-16, 11:52 UTC
Location: kölle, linksrheinisch.

Post by *versalzen »

HolgerK wrote:
versalzen wrote:..., denn die idee mit der batch-datei wäre zwar schön und klein, ist aber nicht schnell genug :)
wenn ich mich im explorer erst über meinen usb-stick ins richtige verzeichnis hangeln muss, damit ich den tc starten kann,...
TCStart.cmd im Hauptverzeichnis des USBSticks wrote:cd .\Tools\totalcmd
set path=%path%;%CD%
start totalcmd.exe
:?:
Gruß,
Holger
der fragezeichen-smiley ist berechtigt. :shock: :oops:

trotzdem würde mich eine antwort auf meine frage sehr interessieren.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?

Mario
User avatar
norfie²
Power Member
Power Member
Posts: 1038
Joined: 2006-02-10, 07:27 UTC

Post by *norfie² »

Evtl. mit VBScript realisierbar. Als Vorlage/Beispiele/Information
http://www.snippetcenter.org/de/net-umgebungsvariablen-per-script-setzen-s182.aspx
und
http://www.vbarchiv.net/tipps/details.php?id=1260
http://www.microsoft.com/technet/scriptcenter/guide/sas_wsh_kmmj.mspx?mfr=true
http://www.microsoft.com/germany/technet/datenbank/articles/600356.mspx
Argumente an das VBScript koennen mit Wscript.Arguments(0), Wscript.Arguments(1) ... innerhalb des VBScripts ausgewertet werden. Zum Testen bietet sich

Code: Select all

objShell.Environment("Volatile")
an.
JOUBE
Power Member
Power Member
Posts: 1685
Joined: 2004-07-08, 08:58 UTC

Post by *JOUBE »

Nur zum besseren Verständnis:
versalzen wrote:die zweite zeile setzt den neuen pfad.
Nö, sie schreibt nur einen Eintrag in die Registry
versalzen wrote:das klappt soweit, das der erweiterte pfad an der richtigen stelle der registry steht, aber leider interessiert das windows nicht.
...Windows schon, aber nicht den bereits laufenden Explorer, der als Shell für alle aufgerufenen Programme dient (ua Commandshell-Fenster, TC usw., dieses sind Tochterprozesse des bereits laufenden Explorers).

Tochterprozesse ist übrigens auch das Stichwort, warum es mit dem - in einem anderen Posting hier - genannten Batch klappt: die am Anfang des Batchs gesetzten Environment-Variablen gelten, solange der durch das Starten des Batchs aufgerufene Command-Prozessor läuft und auch für alle seine Tochterprozesse, hier TC.))
versalzen wrote:jedes neu geöffnete dos-fenster hat noch den alten pfad.
Nö, das ist nicht der "alte" Pfad, sondern der aktuell gültige Pfad der laufenden Shell (AKA Explorer).
versalzen wrote:kann mir evtl. jemand einen tipp geben oder hat eine idee, wo ich weiter ansetzen kann/soll/muss?
API-Aufruf regelt... (vor mir aus auch mit dem Scripting-Host) (Applications should send WM_SETTINGCHANGE to all top-level windows when they make changes to system parameters. Das verpacken Programmierumgebungen gern in eigenen Funktionen)

JOUBE
Post Reply