我正在搜索一个工具,它允许我将某些文件夹指定为"书签",然后通过关键字在命令行(在Windows XP上)访问它们.就像是:
C:\> go home D:\profiles\user\home\> go svn-project1 D:\projects\project1\svn\branch\src\>
我目前正在使用一堆批处理文件,但手动编辑它们是一项艰巨的任务.在Linux上有cdargs或shell书签,但我没有在Windows上找到一些东西.
感谢Powershell的建议,但是我不允许在工作时将它安装在我的盒子上,所以它应该是一个"经典"的cmd.exe解决方案.
您正在寻找的是DOSKEY
您可以使用doskey命令在命令解释程序中创建宏.例如:
doskey mcd=mkdir "$*"$Tpushd "$*"
创建一个新命令"mcd",创建一个新目录,然后更改到该目录(在这种情况下,我更喜欢"pushd"到"cd",因为它让我以后使用"popd"回到我以前的位置)
$*将替换为宏后命令行的其余部分,$ T用于分隔我要评估的两个不同命令.如果我输入:
mcd foo/bar
在命令行,它将等同于:
mkdir "foo/bar"&pushd "foo/bar"
下一步是创建一个包含一组宏的文件,然后可以使用/ macrofile开关导入这些宏.我有一个文件(c:\ tools\doskey.macros),它定义了我经常使用的命令.应在具有与上述相同语法的行上指定每个宏.
但是,您不希望每次启动新的命令解释程序时手动导入宏,以使其自动发生,只需打开注册表项
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun并将值设置为doskey/macrofile"c:\ tools\doskey.macro".这样做可确保每次启动新解释器时都自动预定义宏.
额外的想法: - 如果你想在AutoRun中做其他事情(比如设置环境参数),你可以用&符号分隔命令.我看起来像:set root = c:\ SomeDir&doskey/macrofile"c:\ tools\doskey.macros" - 如果您希望按用户设置AutoRun设置,则可以使用HKCU节点而不是HKLM. - 您还可以使用doskey来控制命令历史记录的大小. - 我喜欢使用\ $*结束我的所有导航宏,以便我可以将事物链接在一起 - 如果您希望能够处理包含空格的路径,请小心在宏中添加适当的引号.
对于简单的情况,我一直在寻找这个确切的功能.找不到解决方案,所以我自己做了一个:
@ECHO OFF REM Source found on https://github.com/DieterDePaepe/windows-scripts REM Please share any improvements made! REM Folder where all links will end up set WARP_REPO=%USERPROFILE%\.warp IF [%1]==[/?] GOTO :help IF [%1]==[--help] GOTO :help IF [%1]==[/create] GOTO :create IF [%1]==[/remove] GOTO :remove IF [%1]==[/list] GOTO :list set /p WARP_DIR=<%WARP_REPO%\%1 cd %WARP_DIR% GOTO :end :create IF [%2]==[] ( ECHO Missing name for bookmark GOTO :EOF ) if not exist %WARP_REPO%\NUL mkdir %WARP_REPO% ECHO %cd% > %WARP_REPO%\%2 ECHO Created bookmark "%2" GOTO :end :list dir %WARP_REPO% /B GOTO :end :remove IF [%2]==[] ( ECHO Missing name for bookmark GOTO :EOF ) if not exist %WARP_REPO%\%2 ( ECHO Bookmark does not exist: %2 GOTO :EOF ) del %WARP_REPO%\%2 GOTO :end :help ECHO Create or navigate to folder bookmarks. ECHO. ECHO warp /? Display this help ECHO warp [bookmark] Navigate to existing bookmark ECHO warp /remove [bookmark] Remove an existing bookmark ECHO warp /create [bookmark] Navigate to existing bookmark ECHO warp /list List existing bookmarks ECHO. :end
您可以列出,创建和删除书签.书签存储在用户目录的文件夹中的文本文件中.
用法(从当前版本复制):
用于终端的文件夹书签.
c:\Temp>warp /create temp # Create a new bookmark Created bookmark "temp" c:\Temp>cd c:\Users\Public # Go somewhere else c:\Users\Public>warp temp # Go to the stored bookmark c:\Temp>
每个warp都使用pushd命令,因此您可以使用popd追溯您的步骤.
c:\Users\Public>warp temp c:\Temp>popd c:\Users\Public>
使用,在资源管理器中打开书签的文件夹warp /window
.
列出所有可用选项warp /?
.