tagwin – windows命令行利器 – 利用标签在文件夹中快速跳转

作者:半瓶墨水   链接:http://www.2maomao.com/blog/win32-folder-tagging-scripts/

Update @ Tuesday, March 1, 2011, 18:26:54: Fix 一些小问题,最新版是1.1

前两天看到了Dreamers’s blog:Bash 小技巧:给目录加上书签,快速切换目录(bashmarks),感觉用批处理脚本实现应该不难

套用Dreamer的一段话(略改):

当我们在命令行下面做开发的时候,很大一部分时间都浪费在了目录切换上面,相信不少人每天敲 “cd” 都敲得想吐。如果目录层次多一点,Tab 键也会饱受摧残。虽然Windows命令行有内置的 “cd -”, “pushd” 和 “popd” 命令,但用起来都不是很顺手。

如果能用几行简单的 Batch 脚本巧妙地给目录加上了书签,这样你就可以给最常用的那几个工作目录加上书签,不需要每次都敲 cd 了。还可以在各个常用的文件夹之间来回快速切换。

当天晚上回来就实现了第一版,感觉很是不错,由于一直没有时间写博,留到今天才拿出来跟大家分享

使用方法

1. 点击此处下载: http://www.2maomao.com/blog/wp-content/uploads/tagwin-dglt-11.zip
 (或者尝试 这个链接

2. 解压所有文件到系统PATH包含的任意目录下

3. 打开命令行,进入要加标签的目录
  t abc —> 给当前目录加标签为abc
  g abc —> 切换到标签为abc的目录
  d abc —> 删除标签abc
  l ———–> 列出所有标签

在你解压缩的那个目录找到dglt.list文件,里面是所有的标签,也可以通过编辑这个文件来管理

另外在Google Code建了一个项目用来保存最新的代码,有兴趣的可以去看看代码:
http://code.google.com/p/tagwin-dglt/

使用演示:

D:\projects>t proj

 proj   D:\projects

D:\projects>cd py\django\fayaa

D:\projects\py\django\fayaa>t fayaa

 fayaa  D:\projects\py\django\fayaa

D:\projects\py\django\fayaa>pushd g:\relax\movie

G:\relax\movie>t movie

 movie  G:\relax\movie

G:\relax\movie>g proj

D:\projects>g fayaa

D:\projects\py\django\fayaa>g movie

G:\relax\movie>l

Tagged Folders
--------------
proj    D:\projects
fayaa   D:\projects\py\django\fayaa
movie   G:\relax\movie

16 条评论 发表在“tagwin – windows命令行利器 – 利用标签在文件夹中快速跳转”上

  1. lix说道:

    两个问题哈,
    第一,tag和path之间的关系是一对一,一对多,多对一,多对多?怎么处理?
    第二,你知不知道doskey这个系统内置工具?我感觉你这个工具如果只支持一对一,那么不如doskey好用。如果支持多对多,那是比较强大,但还是不如doskey好用。你可以写一个bat把t tag加入doskey设置文件中去,别的部分都是多余的。

  2. 半瓶墨水说道:

    @lix
    多对多是不可能的,tagwin是多对一

    你说的是不是doskey的类似alias的设置?我知道它可以做得更便捷,但是跟系统path命令的冲突可能更大,我两个都在用,对于不想深究的用户来说,tagwin还是比较好用的。

  3. littlewater说道:

    对呀,不错,之前老是把常用的目录抽到桌面专门弄一个文件夹快捷方式的^-^

    试试

  4. adam说道:

    我看的是同一篇文章并且受到了启发,博主的动手比较快,我对bat也不熟悉,先拿过来用,呵呵。
    现在发现一个小问题,如果脚本放到了带空格的文件夹,现在的写法会出错的,需要改两个地方
    1. 出错处理输出部分的%~dp0dglt.bat,需要前后加上引号
    2. 查询文件内容的代码,需要改成:for /F “usebackq tokens=1,2 delims= ” %%G IN (“%NAKED_FILE%”) DO (

    另外,如果经常在windows和linux切换,使用的命令最好能统一,建议把t.bat文件修改为s.bat

  5. adam说道:

    另外问一下,tab键自动完成,在windows下的命令行能实现吗?

  6. iworm说道:

    猫猫, 我来留言了.
    此等工具正是我想要的, 哈哈. 用TotalCommander的时候, 也会预先定义一些目录的名字, 方便直接跳转到特定目录.
    doskey是什么我都忘记了

    不过我发现了个bug, 就是这几个bat, 如果放到一个目录名有空格的地方, 执行g就会报错
    比如放到c:\document and settings\bbb\g.bat
    然后运行g aaa就会报错, 提示c:\document路径无效
    把g.bat第11行改成这样就行了for /F “tokens=1,2 delims= ” %%G IN (‘type “%NAKED_FILE%”‘) DO (

  7. iworm说道:

    @adam 你是说在dos下输入tab会自动补全是吧, 这个可以的. 具体修改哪里没细研究过, 但是用过微软的Tweak UI工具可以修改tab补全文件名和目录名

  8. 半瓶墨水说道:

    @iworm, @adam,多谢提供反馈,已经用adam提供的方法(usebackq)搞定了,添加了一个s.bat(内部调用t.bat,呵呵)

    自动补全的事情,还没搞懂怎么做,有谁知道的话,可以share一下

  9. 半瓶墨水说道:

    @iworm “猫猫”是我老婆的博客,称呼我还是用“墨水”比较好 😀

  10. iworm说道:

    OK, 墨水兄

  11. Breaker说道:

    这个有意思 :d,刚开始我还以为 l 是管道符呢

  12. namejm说道:

    那么多bat文件放入path目录下
    如果以后想清理path目录中非系统自带的文件的时候将非常麻烦,很容易漏掉
    建议把这些文件都合并在同一个文件里
    如果需要复制,操作一个文件即可,不担心遗漏

  13. 半瓶墨水说道:

    @namejm 对头,我自己就是这么干的

    blog里教别人的时候,只能简单点儿,否则很容易操作失误出现问题,知道怎么整理path目录的人,自然会想到整理这些 :)

  14. tony说道:

    一直在用autojump[1],很好用,它会根据你访问目录的频度,建立tag, 通常只要输入前几个字符就可以了
    不过只能在*unix环境下用
    你可以借鉴一下这个思路

    [1]:https://github.com/joelthelion/autojump

  15. 波波说道:

    不错,之前看ucOS嵌入式系统的源代码时,就有这样的一个程序切换代码目录。我现在一般都用TC切目录,命令行直接就出来了。

  16. wifecooky说道:

    推荐个工具吧, ALTRun

留下回复