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:”