Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Command line variable in tcstart.btm?

Jul
35
0
Is there a way to to get the command line variable "%L" (set when "TCMD Prompt Here" is selected, as defined by tcmdhere.btm) in tcstart.btm?

I'd like to add some conditional functionality in tcstart.btm based on whether a startup directory was requested or not.

Thanks!
 
Is there a way to to get the command line variable "%L" (set when "TCMD Prompt Here" is selected, as defined by tcmdhere.btm) in tcstart.btm?

I'd like to add some conditional functionality in tcstart.btm based on whether a startup directory was requested or not.

It looks like that parameter is being handed to TCMD.EXE, not TCC.EXE, which makes it kinda difficult.... You can retrieve the command line originally used to start Take Command with something like

Code:
echo %@pidcommand[%@pid[tcmd.exe]]

but that probably won't be useful if you have SingleInstance turned on, and you used "TCMD prompt here" to launch a second instance of Take Command.
 
Code:
echo %@pidcommand[%@pid[tcmd.exe]]

but that probably won't be useful if you have SingleInstance turned on, and you used "TCMD prompt here" to launch a second instance of Take Command.
I don't use SingleInstance (i.e. multiple instances are allowed), so that would work. It does seem to transit the parameters TCMD.EXE was launched with. But when launching a second instance, the parameters from the first instance are still in effect. Can that be avoided so that each instance would have the launch parameters from the associated TCMD.EXE?
 
I don't use SingleInstance (i.e. multiple instances are allowed), so that would work. It does seem to transit the parameters TCMD.EXE was launched with. But when launching a second instance, the parameters from the first instance are still in effect. Can that be avoided so that each instance would have the launch parameters from the associated TCMD.EXE?

You might try %@PIDCOMMAND[%_PPID]

It would be a good idea to check that the first word of the return value does refer to TCMD.EXE, since TCC.EXE can be started by other programs such as Explorer.
 
I suppose you could also edit the "here" command in the registry ... make it
something like

tcmd.exe /t tcc.exe cdd foo

Then TCC should see the startup command. With "SingleInstance" and an
already-running TCMD, that might be what you want (a new tab in the named
place). Without "SingleInstance" you'll get a new instance. Either way, and
unfortunately, a newly-created TCMD will also have the default tabs.

Rex, there should be a way to start TCMD for a specific purpose (as with /t
command) and **not** also get the default tabs (/O(nly) command?).
--
- Vince
 
You might try %@PIDCOMMAND[%_PPID]
This seems to be working for what I'm looking to do. Basically I want to set prompt to Desktop unless a directory is requested when TCMD is being invoked. Multiple instances are allowed.

In tcstart.btm I have:

Code:
@ECHO OFF
prompt = $e[30;46;2m[$w]$e[40;36;1m$s[$t$h$h$h]#$e[40;37;2m$s
alias /R "c:\Users\Ville\My Documents\TCMD\aliases.tcmd"

path %path;%ProgramFiles(x86)\bind\

set startcommand=%@pidcommand[%_PPID]
set startdir=%@TRIM[%@word[2,%startcommand]]

msgbox ok "startcomand" startcommand is '%startcommand'
msgbox ok "startdir" startdir is '%startdir'

if %startdir == "" cdd desk:
cdd /to .

cls

Now this works in all cases except when I'm invoking TCMD from Launchy. It doesn't provide any command line parameters; startdir is empty (''), but still cdd desk: is not called, and since no command line directory is requested, TCC opens in c:\Program Files (x86)\TCMD\

Any idea why if %startdir == "" cdd desk: fails when startdir is blank, but only when started from Launchy? I tried to check it also with DEFINED, but it didn't help (I suppose it's always set since I use set startdir= ...).

Contents of startcommand and startdir are identical whether started from the Start menu icon or from Launchy, but the end result is different. :confused:

I'm using cdd /to . in the end because when the directory is requested (when selecting "TCMD prompt here"), the correct folder is highlighted in the GUI, but it may not be scrolled in the view if the current directory listing is long.
 
On Tue, 04 May 2010 02:12:19 -0400, Ville <> wrote:

|Any idea why *if %startdir == "" cdd desk:* fails when startdir is blank,

You need the quotes:

*if "%startdir" == ""

You could also use:

if defined startdir ...
--
- Vince
 

Similar threads

Back
Top