继 此问题 的答案之后:
对于Windows命令提示符,我可以按以下方式定义别名:
@echo off
DOSKEY ns=npm start
DOSKEY nsr=npm run serve
我想定义一个别名来合并这两个命令。我尝试了以下内容:
@echo off
DOSKEY nss=npm start && npm run serve
当我尝试打开命令提示符时,窗口会打开,但>
提示符不会出现。
我认为包含&&
是导致问题的原因。继 此问题 的答案之后:
对于Windows命令提示符,我可以按以下方式定义别名:
@echo off
DOSKEY ns=npm start
DOSKEY nsr=npm run serve
我想定义一个别名来合并这两个命令。我尝试了以下内容:
@echo off
DOSKEY nss=npm start && npm run serve
当我尝试打开命令提示符时,窗口会打开,但>
提示符不会出现。
我认为包含&&
是导致问题的原因。DOSKEY命令的分隔符是$T
以您的示例为例:
DOSKEY nss=npm start $T npm run serve
>
提示符。但之后我遇到了另一个问题。如果第一个命令由于某种原因失败,则第二个命令仍将执行。我选择了不同的方法,稍后会发布。 - gburnett$T
以形成 &&
,这将是最佳答案。 - Eryk Sun我看了superuser上一个关于在Windows命令行中执行多个命令的方法的答案,下面这种方法解决了我的问题:
@echo off
DOSKEY nss=npm start ^&^& npm run serve
AddConsoleAlias
进行的替换规则。它在控制台客户端程序(例如cmd.exe)读取一行输入之前,就在输入缓冲区中进行替换。这些别名仅适用于在控制台中输入的行的开头(即无法使用管道符号),而不适用于批处理脚本。对于 doskey.exe,您可以使用 $T$T
来代替 &&
,这比在命令行中使用 ^
转义 &
运算符更加灵活。 - Eryk Sun我的方法是从文本文件中加载宏:
a.bat:
@doskey /macrofile=C:\%HOMEPATH%\bin\aliases.txt
aliases.txt:
cl=cd /d $* && dir
如果我在HOMEPATH中键入"cl bin",它会执行"cd /d bin",然后再执行"dir"。
C:\Users\mike> cl bin
09/17/2020 09:27 AM 1,303 a.bat
09/30/2020 03:17 PM 886 aliases.txt
REM do_npm.bat
npm start
npm run serve
接着运行DOSKEY命令
DOSKEY npm=do_npm.bat