[英]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 - ),但實際上沒有辦法,但需要采取一些額外的努力對於這個問題,這里有解決方法
在這種情況下,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" %*
在任何時候標題都是最后一個定義的前提下,最有效的方法應該是在最后一個程序上定義“標題”,即主 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.