将CMD标题设置为正斜杠和问号(批处理)

6

我想知道是否可能将 CMD 的窗口标题更改为 /?

我尝试过使用 ^/?^/^?"/?",但它们都似乎无效。

有人有任何建议吗?

谢谢


title "/?" 对我有效。编辑:哎呀,刚意识到它会显示带引号的 "/?" - phuclv
1
在PowerShell中,[System.Console]::Title = "/?" 可以直接使用,但如果我们从cmd调用PowerShell,则会启动一个子shell,因此无法保留旧环境。 - phuclv
1
我有点找到了一个解决方法。如果你输入 start "/?",它会打开另一个带有正确标题为 /? 的 CMD 窗口。不幸的是,这需要打开另一个窗口,并且不能随时更改。 - ditheredtransparency
不适用于 title = ^/?, title = "/?"... 任何一个。 - phuclv
2
哇.. 经过这么多年的批处理编程,我以为我可以做任何事情,但是我现在却无法让它工作.. 我最接近的尝试是 //? 或 '/?'。 - Ricky Divjakovski
2个回答

5

通过添加一些不可见字符是可能的。
这个想法来自@npocmaka SO:如何设置以逗号、分号或等号开头的标题?
一个标题以逗号开头的问题也可以用LF字符解决,但在你的情况下,LF在字符串中任何地方都没有帮助。

@echo off

(set LF=^
%=empty=%
)

::Create a FS variable
call :hexprint "0x1C" FS

title /%FS%?
exit /b

:hexPrint  string  [rtnVar]
  for /f eol^=^%LF%%LF%^ delims^= %%A in (
    'forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo(%~1"'
  ) do if "%~2" neq "" (set %~2=%%A) else echo(%%A
exit /b

1
@ECHO OFF
if "%~1"=="_SO42546112_" (
    shift
) else (
    start "/?" cmd /D /K ""%~f0" "_SO42546112_""
    exit
)

双击上述的 .bat 脚本,即可启动一个带有 /? 窗口标题的新 CMD 命令提示符。请注意保留 HTML 标签。
要运行一个带有窗口标题 /? .bat 脚本,请使用上述概念,例如:
@ECHO OFF
SETLOCAL EnableExtensions

rem self wrapper - start
if "%~1"=="_SO42546112_" (
    shift
) else (
    start "/?" cmd /D /C ""%~f0" "_SO42546112_" %*"
    exit /B
    rem  ↑↑  omit the `/B` switch to close calling `cmd` window
)
rem self wrapper - end

rem check whether the self wrapper works - start   
echo 1st "%~1"
echo 2nd "%~2"
echo 3rd "%~3"
echo all %*
pause
rem check whether the self wrapper works - end

rem original script continues here:  

使用 start 而不是 title 来更改标题的想法很好。 - jeb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接