【问题标题】:Keep cmd.exe console window with specific title open?保持打开特定标题的 cmd.exe 控制台窗口?
【发布时间】:2018-08-30 06:56:01
【问题描述】:

在 Windows 7 x64 SP1 中,我需要创建一个批处理文件 (.bat),它使 cmd.exe 控制台窗口保持打开状态并具有特定的标题:

@ECHO OFF
title notepadtest
@ECHO ON
start "" /WAIT notepad

但是这个批处理文件在一个不可阻挡的循环中不断打开无数个 cmd.exe 控制台窗口!

如何创建一个批处理文件 (.bat),它只创建一个 cmd.exe 控制台窗口并使其保持打开状态并具有特定的标题?

【问题讨论】:

  • 在 windows 10 机器上运行良好,你在其他 windows 版本上试过吗?
  • 你的批处理文件的名字是什么..?它的实际名称。 notepad.bat 或许?
  • 是的,批处理文件的名称是notepad.bat。有什么问题吗?
  • 你看到下面解释问题的答案了吗?
  • 您也可以在start 命令之后使用PAUSE,而不使用选项/w

标签: windows batch-file


【解决方案1】:

请确保您的批处理文件未命名为 notepad.cmdnotepad.bat 或任何类似任何系统或外部命令的名称。取而代之的是 mynotepad.cmd 之类的名称,然后试试这个:

@echo off
title notepadtest
start "" /w notepad.exe

命令行和批处理文件通常是这样工作的。发出命令时,它首先会检查本地路径,即从该命令启动脚本的位置,如果找不到,它将检查您的环境和系统环境。因此,如果您将批处理文件命名为 notepad.bat,那么您的批处理实际上会一遍又一遍地自行启动,而不是在环境变量中找到 notepad.exe

始终将批处理文件命名为唯一且与系统/外部命令无关的名称。

始终在批处理中使用完整的可执行文件名,例如 start "" /w notepad.exe 而不是 start "" /w notepad

【讨论】:

  • 非常感谢!将批处理文件命名为“notepad.bat”是导致无限循环错误的原因。现在我知道批处理文件的名称很重要。但是“/WAIT”和“/w”有什么区别呢?
  • /wait 是“官方”开关(在帮助中提到),因此应该是首选(也是为了可读性)。 /w 只是我们懒惰打字员的简称。
  • @user1580348 /w/wait 之间没有区别我只输入了简短的/w,因为它更短。实际上,我创建它是为了显示宁愿使用notepad.exe 而不仅仅是记事本。
  • @GerhardBarnard I only typed the short /w as it is shorter 只是表达“我也很懒”的另一种方式:P
  • 要从 CreateProcess 和 CMD 使用的搜索中删除当前工作目录,请使用任何值定义环境变量 NoDefaultCurrentDirectoryInExePath,例如“1”。您可以手动添加“。”到PATH 结尾最后搜索工作目录。
猜你喜欢
  • 2014-04-20
  • 2010-12-26
  • 2013-06-01
  • 2011-07-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
相关资源
最近更新 更多