Windows 打开多个CMD窗口的批处理脚本的奇怪行为
我有以下目录结构: 我创建了Windows 打开多个CMD窗口的批处理脚本的奇怪行为,windows,batch-file,cmd,Windows,Batch File,Cmd,我有以下目录结构: 我创建了StartAll.bat脚本,以便在每个文件夹中打开一个CMD窗口: start cmd.exe /k cd Folder1 & set prompt=Folder1: start cmd.exe /k cd Folder2 & set prompt=Folder2: start cmd.exe /k cd Folder3 & set prompt=Folder3: start cmd.exe /k cd Folder4 & set
StartAll.bat
脚本,以便在每个文件夹中打开一个CMD窗口:
start cmd.exe /k cd Folder1 & set prompt=Folder1:
start cmd.exe /k cd Folder2 & set prompt=Folder2:
start cmd.exe /k cd Folder3 & set prompt=Folder3:
start cmd.exe /k cd Folder4 & set prompt=Folder4:
但是,我在运行它时遇到了一个非常奇怪的行为:
- 第一个窗口显示文件夹1的整个路径
- 第二个窗口显示
Folder1:
- 第三个窗口显示
Folder2:
- 第四个窗口显示
Folder3:
你知道这里发生了什么事吗 我也希望为实现这一目的提出其他建议 不管怎样,我在Windows10上运行这个 谢谢您的帮助。您应该使用以下功能:
start cmd.exe /k cd Folder1 ^& set prompt=Folder1:
start cmd.exe /k cd Folder2 ^& set prompt=Folder2:
start cmd.exe /k cd Folder3 ^& set prompt=Folder3:
start cmd.exe /k cd Folder4 ^& set prompt=Folder4:
现在,&
字符没有转义,这导致它将命令的第二部分视为startAll.bat范围内的新命令
这将导致命令的执行方式如下:
启动一个新窗口,该窗口继承旧提示
将cd刻录到新窗口中的文件夹中
将旧窗口的提示设置为文件夹名称
返回到1,但是旧窗口的提示已更改
这将导致您的4个新窗口出现如下提示:
旧的原始提示,很可能是指向startAll.bat的路径
文件夹1(请注意,这是将cd
放入文件夹2中的窗口
等等。@barakmanos添加了一些关于发生了什么的解释。下次调试批处理文件时,请确保其顶部没有@echo off
,并在末尾添加一个暂停
。或者,您可以将命令行置于/k
后面的引号之间:启动cmd.exe/k“cd-Folder1&set-prompt=Folder1:”