所以我正在嘗試創建一個簡單的 ROCK-PAPER-SCISSORS 游戲,我想在其中顯示各個元素的 ASCII 圖稿。如果我能以某種方式將它們存盤到變數中,以便進一步的邏輯跟進和使用這些變數,那就太好了。
....
.....
.......
........
........
........
........ .........
.................. ..
................ ..
......... .... ....
.. ....
.. ...
... ...
... ..
...........
這是一件藝術品,當我嘗試將它存盤到一個變數中時,例如:
set /p scissors = " the above art "
我收到錯誤。
有人知道如何解決這個問題嗎?
uj5u.com熱心網友回復:
實作目標的另一種可能方法是使用 findstr 讀取嵌入在檔案中的資料。findstr 命令可以分配給一個變數,允許它對不同的元素重復使用:
@echo off
Setlocal EnableDelayedExpansion
Mode 1000
Set "Scissors="
Setlocal EnableDelayedExpansion
Set "RPS=For /f "tokens=2 Delims=RPS123" %%G in ('%SystemRoot%\System32\Findstr.exe /bl ":RPS#" "%~f0"')Do Echo(%%G"
Choice /C:RPS
%RPS:#=!Errorlevel!%
:RPS1
:RPS1
:RPS1 .. ... .. .. .
:RPS1 . ... ... .. . .. .
:RPS1 . .. . ... ... ......
:RPS1 ......... ..... ......
:RPS1 . ...... ..... ........ .
:RPS1 ......... ..... ......
:RPS1 .. .. ................ .
:RPS1 .. ..... .. .. .......
:RPS1 . . . ... . .. ... .
:RPS1 . ... .. . . . .
:RPS1 ... ... ..
:RPS1
:RPS1
:RPS2 .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2. .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 . .
:RPS2 .
:RPS3 ....
:RPS3 .....
:RPS3 .......
:RPS3 ........
:RPS3 ........
:RPS3 ........
:RPS3 ........ .........
:RPS3 .................. ..
:RPS3 ................ ..
:RPS3 ......... .... ....
:RPS3 .. ....
:RPS3 .. ...
:RPS3 ... ...
:RPS3 ... ..
:RPS3 ...........
uj5u.com熱心網友回復:
您可以像這樣定義變數:
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set Scissors=^
....^
.....^
.......^
........^
........^
........^
........ .........^
.................. ..^
................ ..^
......... .... ....^
.. ....^
.. ...^
... ...^
... ..^
...........
然后要使用它,您可以啟用延遲擴展。
SetLocal EnableDelayedExpansion
Echo(!Scissors!
然后稍后,恢復到之前的延遲擴展狀態:
EndLocal
如果您不想啟用延遲擴展,則輸出影像需要更多的作業:
For /F "Tokens=1,* Delims==" %%G In ('"(Set Scissors) 2>NUL"') Do Echo(%%G
uj5u.com熱心網友回復:
其他方式:
@echo off
setlocal EnableDelayedExpansion
REM Define variables:
(for %%a in (
" .. ... .. .. ."
" . ... ... .. . .. ."
" . .. . ... ... ......"
" ......... ..... ......"
". ...... ..... ........ ."
" ......... ..... ......"
".. .. ................ ."
" .. ..... .. .. ......."
" . . . ... . .. ... ."
" . ... .. . . . ."
" ... ... ..") do set "rock=!rock!$%%~a") & set "rock=!rock:~1!"
(for %%a in (
" ."
" . ."
" . ."
" . ."
" . ."
" . ."
". ."
" . ."
" . ."
" . ."
" . ."
" . ."
" . ."
" . ."
" .") do set "paper=!paper!$%%~a") & set "paper=!paper:~1!"
(for %%a in (
"...."
" ....."
" ......."
" ........"
" ........"
" ........"
" ........ ........."
" .................. .."
" ................ .."
" ......... .... ...."
" .. ...."
" .. ..."
" ... ..."
" ... .."
" ...........") do set "scissors=!scissors!$%%~a") & set "scissors=!scissors:~1!"
REM Display variables:
cls
echo rock: & echo/& echo %rock:$=& echo %& echo/& echo/
echo paper: & echo/& echo %paper:$=& echo %& echo/& echo/
echo scissors: & echo/& echo %scissors:$=& echo %& echo/& echo/
uj5u.com熱心網友回復:
只需提供一個選項,如果您運行的是支持 VT100 轉義碼的 Windows 10,您可以執行以下操作:
@echo off
for /F %%i in ('echo prompt $E ^| cmd') do set "n=%%iE"
set "scissors=%n% ....%n% .....%n% .......%n% ........%n% ........%n% ........%n% ........ .........%n% .................. ..%n% ................ ..%n% ......... .... ....%n% .. ....%n% .. ...%n% ... ...%n% ... ..%n% ..........."
echo %scissors%
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383448.html
