2017-03-02 18 views
6

我想知道是否有可能改變CMD的窗口標題,以/?設置CMD標題正斜槓和問號(批)

我使用^/?^/^?"/?"嘗試,但沒有人似乎工作。

任何人有任何建議嗎?

感謝

+0

'title「/?」'適合我。編輯:哎呀只是意識到它顯示「/?」'在PowerShell中引用 –

+1

'[System.Console] :: Title =「/?」'只會工作,但如果我們從cmd調用powershell它將啓動一個subshel​​l所以我們不能保留舊環境 –

+1

我有點找到解決方法。如果你輸入「start」/?「',它會打開另一個帶有'/?'正確標題的CMD窗口。不幸的是,這需要打開另一個窗口,而且不能隨時更改。 – ditheredtransparency

回答

5

有可能與添加一些不可見的字符。
這個想法來自@npocmaka SO: How can I set set a title that start with coma,semicolon or equal sign?
問題的標題與起始逗號也可以用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命令提示符。


要使用/?窗口標題運行.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: 
+0

不錯的想法是用'start'而不是'title'來改變標題 – jeb