2016-03-28 24 views
1

のコール機能に私は、バッチでゲームを作ってるんだ、と私はコードテキストを色付けすることができますので、私はcall機能を使用しています。それはうまく動作しますが、私は '?'それらの中に。私が使用できる回避策はありますか?'?'を使用できません。バッチ

:colorEcho 
echo off 
<nul set /p ".=%DEL%" > "%~2" 
findstr /v /a:%1 /R "^$" "%~2" nul 
del "%~2" > nul 2>&1i 

これはカラーブロックです。

call :colorEcho B " 'Hey, can you come over here, %PlayerName%? I need your help with this new chemical we're working on.' " 

何が起こる:

Picture of the program

私は本当にここまでゲームにすでにだと、再起動したくないので、私は、:colorEchoを維持したいです。

+0

代わりの方法:代わりに、フリーツール「echox.exe」を[Shell Script Tools](http://www.westmesatech.com/sst.html)から使用できます。 –

+0

可能性のある重複した[Windowsのバッチファイルで複数の色を持ってするには?](http://stackoverflow.com/questions/4339649/how-to-have-multiple-colors-in-a-windows-batch-file) –

+3

今後、必要のないところで画像を使用しないでください。コマンドウィンドウからテキストをコピー&ペーストして、ここにブロック引用またはコードブロックで投稿することができます。イメージは常に読みやすいとは限らず、多くの企業プロキシサーバーによってブロックされているため(ユーザーは見ることができません)、モバイルデバイスで読むことはほとんど不可能であり、モバイルユーザーにはデータ(および金額) 。 –

答えて

1

私はコードテキストを色付けすることができますので、私は、コール機能を使用しています。それはうまく動作しますが、私は '?'それらの中に。

ここ@jebの答えから:How to have multiple colors in a Windows batch file?
!<>&| %"*?などの特殊文字を処理できるようにするには、このコードブロックを使用してください。感嘆符はいろいろな扱いが必要ですが、これはどのように表示されますか。

@echo off 
SETLOCAL EnableDelayedExpansion 
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
    set "DEL=%%a" 
) 
rem Prepare a file "X" with only one dot 
<nul > X set /p ".=." 

call :colorEcho 0B " 'Hey, can you come over here? I need your help ...' " 
echo(
call :colorEcho 0A " 'Yo" &call :colorEcho 0A ^^^^^^^! &call :colorEcho 0A " What's up?' " 
echo(
call :colorEcho 0B " 'Oh $#><* that hurts" &call :colorEcho 0A ^^^^^^^!' " 
echo(
call :colorEcho 0C " ^!<>&|%%%%"*?" 

del X 
goto :eof 

:colorEcho 
set "param=^%~2" ! 
set "param=!param:"=\"!" 
findstr /p /A:%1 "." "!param!\..\X" nul 
<nul set /p ".=%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%%DEL%" 
exit /b 
+0

これはどのようにしてコード内で使用できますか?私はそれを試してみたまだそれは色の残りの部分を台無しにして言います:「'FINDSTR:!!開くことができないのparamを\ .. \ X '」 – FudgeMuffins

+0

ソリューション全体を含めるように私の答えを編集しました。 –

+0

私はこのコードを試しましたが、まだテキストの代わりに '!param!'を表示している部分もあります。 – FudgeMuffins

関連する問題