【问题标题】:alias DOS command for runasrunas 的别名 DOS 命令
【发布时间】:2010-08-13 18:31:39
【问题描述】:

我希望能够为 dos 命令起别名以与 runas 命令一起使用

具体来说,我厌倦了获得 BIDS ("C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe") 的完整路径,我想像 MS 为 ssms 所做的那样使用别名。

有人知道怎么做吗?我知道我可以使用批处理文件来完成此操作,但我真的不想这样做。

runas /user:user /netonly bids

对比

runas /user:user /netonly "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"

【问题讨论】:

  • 我引用了这个文档:technet.microsoft.com/en-us/library/bb490894.aspx,看起来这可能有效。如果您可以在下面提供答案(而不是评论),链接到一些文档并提供基于问题中列出的命令的工作示例,那么赏金就是您的。
  • 使用下面发布的我的方法,您可以按照@Jon 建议的方式执行此操作,但是当您打开 dos shell 时会预先加载命令别名。

标签: alias dos


【解决方案1】:

doskey 技术在 SuperUser 中得到了推荐,请参阅 https://superuser.com/questions/49170/create-an-alias-in-windows-xp

它的问题是您无法定义runas 使用的别名。您可以定义一个别名,其中包含 runas 您要运行的命令,但这将无法重用。但是这样做呢:

SET BIDS=C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe
DOSKEY r=runas /user:user /netonly "%$1%"

然后你可以像这样使用

r bids

当然,这需要你为每个你想要的快捷方式设置一个环境变量,但我认为这并没有比设置doskey 别名本身更大的要求。在任何情况下,它都不会创建文件,也不需要在path 中放置任何内容。

更新:

我自己没有尝试过,但它确实看起来你可以设置并忘记它。

  • 可以通过 Windows 的系统设置设置环境变量(见图)
  • 每次cmd.exe启动using the registry时都可以设置DOSKEY别名

【讨论】:

  • 太棒了!几个跟进问题。有没有办法让我在一个会话之后坚持下去?这行得通,但我每次重新启动命令提示符时都必须重置它。
【解决方案2】:

我认为您遇到的问题是命令行被评估为新用户 - 所以除非新用户也可以访问您的别名,否则它将不起作用。

编辑:您可以通过创建一个方便放置的批处理文件(或快捷方式?)来解决此问题,该文件启动 BIDS 并运行该文件?

编辑:

有关选择命令的信息,请参阅 herehere

示例用法:

@ECHO OFF
Echo 1. Some Command
Echo 2. Some Other Command
CHOICE /C:12 /N /T:1,10 Choose an option
IF ERRORLEVEL 2 GOTO COMMAND2
IF ERRORLEVEL 1 GOTO COMMAND1
GOTO END

:COMMAND1
Runas /Uer:Blah "BLAH" > NUL
GOTO END

:COMMAND2
Runas /Uer:Blah "BLAH" > NUL
GOTO END

:END

【讨论】:

  • 是的,我之前考虑过批处理文件,但是有几种不同的情况我会这样做,我真的不想有那么多批处理文件在...
  • FWIW,我有一个批处理文件,它使用CHOICE.COM 提供菜单,执行RunAs 并提示输入密码 - 所以我只需输入RunIt,选择一个选项并输入密码。在这种情况下,我还可以以不同用户的身份运行不同的软件(我的标准账户/SSMS 的我的 DBA 账户等......)
  • 你到底是怎么做到的?我不熟悉choice.com
  • 更新了我的答案。即使您需要 DL Choice,它也非常方便(它也可以用于批处理文件中的定时暂停)。它适用于 Windows 98/2K/XP/Vista/7
  • 您甚至可以显示多个菜单 - 例如菜单 1 选择用户,将其存储在变量中。 MEnu 2,选择应用程序 - 然后结合2以指定用户身份运行应用程序
【解决方案3】:

这是一个脚本,它将在您的命令 shell 上设置别名。该脚本为您提供了难以捉摸的“WHERE”命令:

@ECHO OFF 
ECHO Loading additional commands from:
ECHO    %0
ECHO Type 'DOSKEY /MACROS:ALL' to see the configured commands.
:: to install, place this .bat script in the location you want 
:: it to reside and then run this batch script with the argument "register"
IF "%1"=="register" (
  REG.exe ADD "HKCU\Software\Microsoft\Command Processor\Autorun" /ve /t REG_SZ /d "%0" /f
  ECHO The DOS profile is registered.  Load a new command prompt and test a command.
)
@DOSKEY LS=DIR /w 
@DOSKEY CP=COPY $* 
@DOSKEY MV=MOVE $* 
@DOSKEY H=DOSKEY /HISTORY
@DOSKEY WHERE=@for %%e in (%PATHEXT%) do @for %%i in ($*%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i

【讨论】:

  • 有趣的选择。 +1
  • 该脚本不适用于每个 Win7 系统...不知道为什么,但它可以在我的两台计算机上运行。
猜你喜欢
  • 1970-01-01
  • 2011-11-27
  • 2011-02-23
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多