为什么更改 cmd 命令中的顺序会产生不同的结果?
Why change of sequence in cmd command gives different result?
我是使用 cmd 和批处理脚本的新手。这是我尝试对 .bat 文件执行的操作。
- 转到文件夹
- 在文件资源管理器中打开该文件夹
- 打开 vscode
中的那个文件夹
- 启动火狐浏览器
此处顺序无关紧要。以任何顺序执行这些任务都可以。
这是我最初写的命令
cd/
E:
cd folder1/folder2/folder3
code .
start .
start firefox
但是使用这些命令我得到的结果是
- 只有 vscode 以我想用 vscode
打开的文件夹开头
- 文件资源管理器和 Firefox 未启动
- cmd.exe 继续 运行。但它似乎只执行了 code . command
- 当我关闭 vscode 时,cmd.exe 也会随之关闭
然后我改变了命令的顺序如下
cd/
E:
cd folder1/folder2/folder3
start .
start firefox
code .
这次一切都按预期进行。我已经查找了 start 命令的文档,但没有找到任何关于 start . 命令的内容(或者我可能不明白)。
谁能解释一下为什么当我更改命令顺序时结果会发生变化?
由于,code
确实是一个批处理文件,code.cmd
。
如果您的 VSCode 安装程序在您的 %PATH%
中添加了一个位置,请查看那里,您应该会在 \bin
目录中看到 code.cmd
.
当您 运行 来自另一个批处理文件时,如果您希望控制权在完成后传回初始脚本,您需要使用 运行 命令 运行 它。
@CD /D "E:\folder1\folder2\folder3" 2>NUL || Exit /B
@Call "%ProgramFiles%\Microsoft VS Code\bin\code.cmd" .
@Start "" "%SystemRoot%\explorer.exe" .
@Start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe"
如果您不想要健壮的代码,并希望采用文件扩展名和环境设置,上面的内容可以简化为:
@CD /D E:\folder1\folder2\folder3
@Call code .
@Start explorer .
@Start firefox
我是使用 cmd 和批处理脚本的新手。这是我尝试对 .bat 文件执行的操作。
- 转到文件夹
- 在文件资源管理器中打开该文件夹
- 打开 vscode 中的那个文件夹
- 启动火狐浏览器
此处顺序无关紧要。以任何顺序执行这些任务都可以。
这是我最初写的命令
cd/
E:
cd folder1/folder2/folder3
code .
start .
start firefox
但是使用这些命令我得到的结果是
- 只有 vscode 以我想用 vscode 打开的文件夹开头
- 文件资源管理器和 Firefox 未启动
- cmd.exe 继续 运行。但它似乎只执行了 code . command
- 当我关闭 vscode 时,cmd.exe 也会随之关闭
然后我改变了命令的顺序如下
cd/
E:
cd folder1/folder2/folder3
start .
start firefox
code .
这次一切都按预期进行。我已经查找了 start 命令的文档,但没有找到任何关于 start . 命令的内容(或者我可能不明白)。
谁能解释一下为什么当我更改命令顺序时结果会发生变化?
由于code
确实是一个批处理文件,code.cmd
。
如果您的 VSCode 安装程序在您的 %PATH%
中添加了一个位置,请查看那里,您应该会在 \bin
目录中看到 code.cmd
.
当您 运行 来自另一个批处理文件时,如果您希望控制权在完成后传回初始脚本,您需要使用 运行 命令 运行 它。
@CD /D "E:\folder1\folder2\folder3" 2>NUL || Exit /B
@Call "%ProgramFiles%\Microsoft VS Code\bin\code.cmd" .
@Start "" "%SystemRoot%\explorer.exe" .
@Start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe"
如果您不想要健壮的代码,并希望采用文件扩展名和环境设置,上面的内容可以简化为:
@CD /D E:\folder1\folder2\folder3
@Call code .
@Start explorer .
@Start firefox