打开命令提示符时自动执行命令

Dan*_*ams 26 windows console autorun command-line

我正在寻找一种在 Windows 中打开命令提示符时自动执行一些控制台命令的方法,特别是设置一些命令别名。

例如,一个命令提示被打开时,我想的命令如以下自动运行,这样我可以使用ls代替的dir

doskey ls=dir
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

use*_*686 54

命令别名特定于您配置它们的控制台窗口,因此启动脚本将不起作用。你可以这样做:

  1. .cmd使用您的doskey命令创建一个批处理文件 ( ) ,将其放在应用程序数据中的某个位置。

  2. 将其配置为在您打开cmd时自动启动。设置在注册表中:

    • 钥匙: HKCU\SOFTWARE\Microsoft\Command Processor
    • 价值: AutoRun
    • 类型:REG_EXPAND_SZ
    • 数据: "%AppData%\aliases.cmd"


KCo*_*eau 11

如果您希望它在启动时加载,而不是在您登录时加载,如果您有 XP Pro(XP home 不包含 gpedit.msc),请执行以下操作:

开始>运行>gpedit.msc

并按回车键。然后从命令行运行 gpupdate /force 。

计算机配置>Windows 设置>脚本>启动

并将位置添加到脚本中。

您也可以为下的用户登录执行此操作

用户配置>Windows 设置>脚本>启动

如果您有 XP Home,则可以将脚本复制到:

C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

用于在启动时加载它们,或者:

C:\Windows\System32\GroupPolicy\User\Scripts\Logon

用于在登录时为用户加载它们。GroupPolicy 文件夹被隐藏。

  • @KContreau,你是对的,他的问题是这个问题的标题不正确。在“澄清”中,他说他想“在我启动 DOS 提示符时运行一些 DOS 命令,**主要是设置一些别名**”。要在 Windows 启动时执行一些命令,您的解决方案可以,但要运行别名则不行。 (2认同)

Jde*_*eBP 5

不同的命令解释器以不同的方式处理命令别名。

Microsoft 的 CMD 依赖于 Win32 控制台子系统来提供其命令别名机制。该doskey命令实际上与进程的控制台交互,并且控制台本身保存别名。因此别名是每个控制台和临时的。

JP Software 的 TCC/LE自行处理别名。该alias命令允许查看和操作别名,这些别名可以是“本地”或“全局”。别名仍然是暂时的,但要么是一个命令解释器进程专用的,要么在所有命令解释器进程之间共享(跨所有控制台)。

外壳如Korn外壳SFUA实用工具-其工具在运行子系统基于UNIX的应用程序自带正确的,在与Windows 7旗舰版和Windows Server 2008 R2(适用于Windows XP的箱子,可以下载和安装UNIX 版本 3.5 的服务.) — 和来自cygwin的 Bourne Again shell类似地自己处理别名。别名是暂时的,并且是每个命令解释器进程。

自动加载默认的初始别名集也因命令解释器而异。

在所有情况下,都可以在某种脚本中放置用于设置别名的命令。

grawity已经给出了导致 Microsoft 的 CMD 在启动时运行命令的两个注册表项之一。不幸的是,这是每个命令解释器进程,即使别名本身存储在每个 console 中。从最初的命令解释器启动辅助命令解释器,对默认别名的任何手动更改都将被重置。另一种方法,至少每个控制台只执行一次初始化,是在启动命令解释器的快捷方式中添加/K调用doskey命令尾部的命令脚本的选项和名称。

JP Software 的 TCC/LE在其启动时自动运行TCSTART脚本。同样,这是每个命令解释器进程。然而,TCC 的“本地”别名也是每个命令解释器进程的,所以如果使用本地别名,这是初始化别名的正确位置。对于全局别名,只需在您的Startup文件夹中创建一个从文件加载别名的快捷方式(使用alias /r),然后运行shralias命令,以便在该快捷方式完成运行后它们仍然存在。

对于 Bourne Again 和 Korn shell,只需像在任何其他平台上使用这些 shell 一样操作即可。使用Bourne Again shellalias$HOME/.profile$HOME/.bashrc脚本中的命令;并在 Korn shellalias$HOME/.profile、ENV 和$HOME/.kshrc脚本中使用该命令。