簡體   English   中英

Windows 批處理 cmd 文件“標題”命令不起作用

[英]Windows batch cmd file "title" command not working

我想更改從批處理文件運行的 cmd window 標題欄的標題,但顯然標題命令不適用於批處理(.cmd)文件。

當我用谷歌搜索並閱讀 stackoverflow 時,我發現有三個可能的命令可以解決這個問題,但到目前為止,它們都沒有對我有用:

start "<title>" # => this starts a new shell window, not a solution
system "title \"Window title\""; # => "system" not found 
title cmdtitle # => this works on a manually opened cmd window (win-R -> cmd) but does not work on batch files

那么,這有什么問題呢?

(編輯)

如下圖,“title[title]”由於某種原因不起作用……

在此處輸入圖像描述

因此,由於@Mofi,我知道出了什么問題,這里是解決我嘗試過的問題的解決方法。

——原因:

此問題的原因是批處理文件上的“someprogram.cmd --option 不管”行。 在另一個 cmd 程序文件上,應該有一些“標題”行覆蓋先前定義的標題行。

——解決辦法

雖然我對 cmd 腳本不熟悉,並且對這個標題行為感到沮喪(標題很容易被覆蓋,而且顯然它是一種習慣編碼 - 就像這種情況下 nodejs - ),但實際上沒有辦法,但需要采取一些額外的努力對於這個問題,這里有解決方法

  1. 手動修改子 cmd 程序文件(在本例中為 node.js 生成的文件)

在這種情況下,node.js cmd 程序內部如下所示,該特定行定義了“標題”並導致覆蓋它,因此修改該行。

(默認)

endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%"  "%dp0%\node_modules\node-cron-cli\croncli" %*

(例如)

endLocal & goto #_undefined_# 2>NUL || title croncli.cmd & "%_prog%"  "%dp0%\node_modules\node-cron-cli\croncli" %*
  1. 覆蓋最后一個子程序中的標題

在任何時候標題都是最后一個定義的前提下,最有效的方法應該是在最后一個程序上定義“標題”,即主 node.js 程序(在這種情況下)。

這將從 node.js 定義 Windows cmd 標題。 這還沒有經過我自己的測試,但應該可以工作。

if (process.platform == 'win32') {
  process.title = title;
} else {
  process.stdout.write('\x1b]2;' + title + '\x1b\x5c');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM