TC与Everything实现互操作的路径设置
一、TC与Everything的互操作主要有三个含义:
1、 在TC下通过热键,能启动并呼出Everything主界面;
2、 在TC的搜索界面,通过勾选Everything,能利用Everything实现搜索功能;
3、 在Everything主界面,在搜索到的目标(文件夹或文件)上能快速返回TC中并自动定位在目标处。
二、相关的设置主要有三处:
假设TC完整的绝对路径是d:\,完整的绝对路径是d:\totalcmd\tools\ 。
1、TC的usercmd.ini中设置:
;新增自定义命令,供TC下热键调用运行Everything执行搜索。在"%P "中包含空格,这样在搜索的时候将会包含子目录
[em_Everything]
cmd=%COMMANDER_PATH%\tools\
param="-search "%P ""
2、TC的wincmd.ini中设置:
[Configuration]
;设置的路径:
Everything=%Commander_path%\tools\ –startup
;当按下空格键或Alt+Shift+Enter后,使用Everything获取文件夹大小:
Everythingforsize=1
[Shortcuts]
;设置TC下启动并呼出Everything的快捷键为shift+F7:
S+F7=em_Everything
我们注意到,TC下的相关设置使用了TC的环境变量%COMMANDER_PATH%
3、Everything目录下Everything.ini的配置:
open_folder_command2=$exec("d:\" /T /O /P=L /L="%1")
open_file_command2=$exec("d:\totalcmd\addons\" "%1")
open_path_command2=$exec("d:\" /O /A "%1")
我们注意到,与TC下的配置不同,Everything的配置中使用的是的绝对路径,因为%COMMANDER_PATH%对在TC外运行的Everything不起作用。
三、Everything设置的优化
事实上不同的计算机有可能的绝对路径是不一样的,不一定都是d:\totalcmd。为了实现配置的路径无关性,我们引入一个用户或系统环境变量tcdir,其值等于TC的绝对路
径。这样当在不同的计算机上运行的TC的路径发生变化时,不用更改Everything或其它TC下下一堆工具里的路径,只需要修改tcdir的值即可。
这样,Everythingautoit的相关配置就更改为:
open_folder_command2=$exec("%tcdir%\" /T /O /P=L /L="%1")
open_file_command2=$exec("%tcdir%\addons\" "%1")
open_path_command2=$exec("%tcdir%\" /O /A "%1")
四、特殊应用场合
当TC的路径发生变化时,虽然只需要手工修改tcdir的环境变量即可,操作并不复杂。但在一些特殊场合或特殊的TC使用者,比如经常在不同的机器上使用带有TC的优盘上使用TC和Everything,每次都要修改一下环境变量,也是一件烦恼的事,有没有一键自动修改,插上优盘运行TC即可使用Everything的方法呢?答案是有的,请看用tcimg实现的方法:
1) 拖动到工具栏生成按钮,编辑该按钮,在参数栏填:
exect=$var_U=EnvGet('Commander_path') cmdbt=setx~~tcdir~~$var_U
命令解释:
该命令是由exect=$var_U=EnvGet('Commander_path')和cmdbt=setx~~tcdir~~$var_U两个命令组成的组合命令,命令之间用空格分割。
“exect=”表示tcing后面调用的是autoIt函数;
$var_U=EnvGet('Commander_path')表示获取TC内部环境变量Commander_path的值,并
赋值给新定义的变量var_U。在本例中此时var_U的值就是d:\totalcmd。
cmdbt=表示tcinmg后面将执行控制台指令;
控制台指令setx~~tcdir~~$var_U其实就是执行操作系统自带的设置环境变量的命令:Setx tcdir d:\totalcmd
表示新增或更新环境变量tcdir的值为d:\totalcmd。
因为是在tcimg命令中使用,所以要将上述控制台指令变为符合TCIMG的命令格式,用~~代替空格,所以命令最后变成了setx~~tcdir~~$var_U
2、如果觉得使用按钮并不方便,想在TC启动时执行,则可以在wdx插件autorun的autorun.cfg配置中新增如下一行:
ShellExec "%COMMANDER_PATH%\ADDONS\" "exect=$var_U=EnvGet('Commander_path') cmdbt=setx~~tcdir~~$var_U"
这样TC启动后就自动修改tcdir的值。其中使用时要修改为实际路径。
五、注意事项
1、Everything最好不要先于tc启动。因为Everything先于tc启动的话,tcdir可能还没有生成。所以最好先启动TC,再启动Everything,或者是在tc中执行搜索时自动启动Everything。不要将Everything设置为开机自启动。
2、上述命令添加的是用户环境变量,如果想要将tcdir设置系统变量,将setx~~tcdir~~$var_U改成setx~~tcdir~~$var_U~~/M。
不过,如果你的操作系统在安全方面特别是用户权限方面设置比较严格的话,对系统变量不一定有操作权限。设置用户变量就没有这个问题。
3、上述自动修改环境变量的方法并不仅仅只针对Everything,凡是和TC有互动操作的而又是在TC外运行的程序,需要设置TC的路径的地方,都可用上tcdir这个变量。
4、网友潇潇指出,如果在你的TC目录下的工具或lnk文件里写的是tcdir路径变量,这些工具或lnk的运行都依赖于tcdir的值,如果修改tcdir后可能导致他们不能运行。这种情况在运行两个以上的使用了自动修改tcdir的TC时会发生,这一点需要使用者特别注意。为避免混乱,可
以在需要使用自动修改tcdir的TC版本的配置里生成不同的环境变量名,如tcdir_U等等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论