Windows上用于命令行"书签"的工具?

时间:2020-03-05 18:44:18  来源:igfitidea点击:

我正在搜索一个工具,该工具允许我将一些文件夹指定为"书签",然后通过关键字在命令行(在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解决方案。

解决方案

回答

使用PowerShell,我们可以将文件夹作为变量添加到profile.ps1文件中,例如:

$vids="C:\Users\mabster\Videos"

然后,像Unix一样,我们可以仅在命令中引用变量:

cd $vids

在一个ps1文件中具有变量分配列表可能比维护单独的批处理文件容易。

回答

没有Powershell,我们可以这样操作:

C:\>set DOOMED=c:\windows
C:\>cd %DOOMED%
C:\WINDOWS>

回答

环境变量?

set home=D:\profiles\user\home
set svn-project1=D:\projects\project1\svn\branch\src

cd %home%

在Unix上,我一直将它与popd / pushd / cd一起使用。

回答

我们在寻找什么叫做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"。这样做将确保每次启动新的解释器时都自动预定义宏。

额外的想法:
如果要在"自动运行"中执行其他操作(例如设置环境参数),则可以使用"&"号分隔命令。我的看起来像:set root = c:\ SomeDir&doskey / macrofile" c:\ tools \ doskey.macros"
如果我们希望按用户设置自动运行设置,则可以使用HKCU节点代替HKLM。
我们也可以使用doskey来控制诸如命令历史记录大小之类的内容。
我想用\ $ *结束所有导航宏,以便将内容链接在一起
如果要能够处理带空格的路径,请小心在宏中适当添加引号。

回答

仅使用批处理文件,请尝试...(另存为文件名" go.bat")

@echo off
set BookMarkFolder=c:\data\cline\bookmarks\
if exist %BookMarkFolder%%1.lnk start %BookMarkFolder%%1.lnk
if exist %BookMarkFolder%%1.bat start %BookMarkFolder%%1.bat
if exist %BookMarkFolder%%1.vbs start %BookMarkFolder%%1.vbs
if exist %BookMarkFolder%%1.URL start %BookMarkFolder%%1.URL

我们放置在书签文件夹中的所有快捷方式,批处理文件,VBS脚本或者Internet快捷方式(在本例中为" c:\ data \ cline \ bookmarks ",然后都可以通过键入"转到书签名称"来打开/访问)

例如我有一个名为" stack.url"的书签。输入go stack可以直接进入此页面。

我们可能还需要调查Launchy

回答

我们可能要考虑的另一种替代方法可能是拥有一个包含指向每个项目或者常用目录的符号链接的文件夹。所以你可以做类似的事情

cd \go\svn-project-1
cd \go\my-douments

可以使用Junction工具在NTFS磁盘上进行符号链接

回答

Crono wrote:
  
  
    Are Environment variables defined via "set" not meant for the current session only? Can I persist them?

它们是为当前进程设置的,默认情况下由它创建的任何进程继承。它们不会持久保存到注册表中。可以在带有" setlocal"(和" endlocal")的cmd脚本中限制它们的范围。