【자신용】 배치 파일로 선택사항을 GUI 표시할 때의 템플리
비스타 이후
외형
준비
①
어디에 어떤 옵션을 배치할지 미리 설정해 둡니다.
・가독성을 높이기 위해서 배열풍의 기술을 한다
・[0][0] 시작이 아닌 [1][1]로 한다. 계산시 음수를 발생시키지 않기 위해
・문자열의 폭이 다르면 어려워진다. 사전에 고치는 것
전망: 선택사항별 문자열의 폭을 조사하여 최대의 것에 맞추어 자동으로 공백 채우고 싶다
선택사항을 각각 텍스트 파일에 돌진해, 순서대로 바이트수를 취해 가는 것이 확실한가.
단점은 요소수에 비례하여 시간이 걸리는 일시적인 파일의 양산
command[1][1]
command[1][2]
command[1][3]
…
command[2][1]
command[2][2]
command[2][3]
…
command[3][1]
command[3][2]
command[3][3]
…
:
:
:
②
다음 명령을 실행합니다.
call :cursor 0 (縦のサイズ) (横のサイズ)
rem 例:call :cursor 0 3 2
③
선택의 위에 표시하고 싶은 문장이 있으면, 그것을 적절한 이름의 텍스트 파일에 돌입
미리 밀어 넣은 파일을 준비해도 좋다.
・반각 퍼센트의 개수에 주의한다
・배치내에서 준비하는 경우는 echo 문장 >> hoge.txt
미리 준비해 두는 경우, %% 변수명%%라고 써 두는 것으로 배치내에서 설정한 변수를 읽어들일 수 있다.
실행
다음 명령을 실행합니다.
call :select (WASD以外の選択肢) (さっき作ったテキストファイルの.txt以前)
· 당연히 txt를 사용하지 않으면 인수 2가 필요하지 않습니다.
·txt의 디렉토리가 다른 경우, 풀 패스로 기입. 전체 경로의 경우 공간이 있으면 버그합니다. 잃어버린
결과
WASD 이외의 선택사항이 선택되면, 몇번째가 선택되었는지를 errorlevel에 넣어 낸다.call :select jk
그렇다면 J 또는 K를 누르면 5,6이 돌아옵니다.
그 때 선택된 명령은 [cursorm] [cursorn]에 출력.
사용하고 있는 변수(중복 방지용)
arraym...세로 크기
arrayn... 수평 크기
cursorl[m][n]...전각 공간인가【
cursorr[m][n]...전각 공간인가]
cursorm... 지금 가리키는 세로
cursorn... 지금 가리키는 옆
command[m][n]... 각 명령
commandline[m]...
이하 코피페
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
:select
for /l %%i in (1,1,%arraym%) do (
set commandlist[%%i]=
for /l %%j in (1,1,%arrayn%) do (
set commandlist[%%i]=!commandlist[%%i]!!cursorl[%%i][%%j]!!command[%%i][%%j]!!cursorr[%%i][%%j]!
)
)
cls
if exist "%2.txt" type "%2.txt"
for /l %%i in (1,1,%arraym%) do (
echo !commandlist[%%i]!
)
choice /c wasd%1 >nul
if %errorlevel% leq 4 (
call :cursor %errorlevel%
goto select
)
exit /b
:cursor
if not "%3" == "" set /a arraym=%2,arrayn=%3
set cursorl[%cursorm%][%cursorn%]=
set cursorr[%cursorm%][%cursorn%]=
call :cursor_%1
set cursorl[%cursorm%][%cursorn%]=【
set cursorr[%cursorm%][%cursorn%]=】
exit /b
:cursor_0
for /l %%i in (1,1,!arraym!) do (
for /l %%j in (1,1,!arrayn!) do (
set cursorl[%%i][%%j]=
set cursorr[%%i][%%j]=
)
)
set /a cursorm=1,cursorn=1
exit /b
:cursor_1
set /a cursorm=(cursorm+arraym-2)%%arraym+1
exit /b
:cursor_2
set /a cursorn=(cursorn+arrayn-2)%%arrayn+1
exit /b
:cursor_3
set /a cursorm=cursorm%%arraym+1
exit /b
:cursor_4
set /a cursorn=cursorn%%arrayn+1
exit /b
Reference
이 문제에 관하여(【자신용】 배치 파일로 선택사항을 GUI 표시할 때의 템플리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/plcherrim/items/49796f86a6642c3ac920
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
call :cursor 0 (縦のサイズ) (横のサイズ)
rem 例:call :cursor 0 3 2
다음 명령을 실행합니다.
call :select (WASD以外の選択肢) (さっき作ったテキストファイルの.txt以前)
· 당연히 txt를 사용하지 않으면 인수 2가 필요하지 않습니다.
·txt의 디렉토리가 다른 경우, 풀 패스로 기입. 전체 경로의 경우 공간이 있으면 버그합니다. 잃어버린
결과
WASD 이외의 선택사항이 선택되면, 몇번째가 선택되었는지를 errorlevel에 넣어 낸다.call :select jk
그렇다면 J 또는 K를 누르면 5,6이 돌아옵니다.
그 때 선택된 명령은 [cursorm] [cursorn]에 출력.
사용하고 있는 변수(중복 방지용)
arraym...세로 크기
arrayn... 수평 크기
cursorl[m][n]...전각 공간인가【
cursorr[m][n]...전각 공간인가]
cursorm... 지금 가리키는 세로
cursorn... 지금 가리키는 옆
command[m][n]... 각 명령
commandline[m]...
이하 코피페
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
:select
for /l %%i in (1,1,%arraym%) do (
set commandlist[%%i]=
for /l %%j in (1,1,%arrayn%) do (
set commandlist[%%i]=!commandlist[%%i]!!cursorl[%%i][%%j]!!command[%%i][%%j]!!cursorr[%%i][%%j]!
)
)
cls
if exist "%2.txt" type "%2.txt"
for /l %%i in (1,1,%arraym%) do (
echo !commandlist[%%i]!
)
choice /c wasd%1 >nul
if %errorlevel% leq 4 (
call :cursor %errorlevel%
goto select
)
exit /b
:cursor
if not "%3" == "" set /a arraym=%2,arrayn=%3
set cursorl[%cursorm%][%cursorn%]=
set cursorr[%cursorm%][%cursorn%]=
call :cursor_%1
set cursorl[%cursorm%][%cursorn%]=【
set cursorr[%cursorm%][%cursorn%]=】
exit /b
:cursor_0
for /l %%i in (1,1,!arraym!) do (
for /l %%j in (1,1,!arrayn!) do (
set cursorl[%%i][%%j]=
set cursorr[%%i][%%j]=
)
)
set /a cursorm=1,cursorn=1
exit /b
:cursor_1
set /a cursorm=(cursorm+arraym-2)%%arraym+1
exit /b
:cursor_2
set /a cursorn=(cursorn+arrayn-2)%%arrayn+1
exit /b
:cursor_3
set /a cursorm=cursorm%%arraym+1
exit /b
:cursor_4
set /a cursorn=cursorn%%arrayn+1
exit /b
Reference
이 문제에 관하여(【자신용】 배치 파일로 선택사항을 GUI 표시할 때의 템플리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/plcherrim/items/49796f86a6642c3ac920
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
arraym...세로 크기
arrayn... 수평 크기
cursorl[m][n]...전각 공간인가【
cursorr[m][n]...전각 공간인가]
cursorm... 지금 가리키는 세로
cursorn... 지금 가리키는 옆
command[m][n]... 각 명령
commandline[m]...
이하 코피페
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
:select
for /l %%i in (1,1,%arraym%) do (
set commandlist[%%i]=
for /l %%j in (1,1,%arrayn%) do (
set commandlist[%%i]=!commandlist[%%i]!!cursorl[%%i][%%j]!!command[%%i][%%j]!!cursorr[%%i][%%j]!
)
)
cls
if exist "%2.txt" type "%2.txt"
for /l %%i in (1,1,%arraym%) do (
echo !commandlist[%%i]!
)
choice /c wasd%1 >nul
if %errorlevel% leq 4 (
call :cursor %errorlevel%
goto select
)
exit /b
:cursor
if not "%3" == "" set /a arraym=%2,arrayn=%3
set cursorl[%cursorm%][%cursorn%]=
set cursorr[%cursorm%][%cursorn%]=
call :cursor_%1
set cursorl[%cursorm%][%cursorn%]=【
set cursorr[%cursorm%][%cursorn%]=】
exit /b
:cursor_0
for /l %%i in (1,1,!arraym!) do (
for /l %%j in (1,1,!arrayn!) do (
set cursorl[%%i][%%j]=
set cursorr[%%i][%%j]=
)
)
set /a cursorm=1,cursorn=1
exit /b
:cursor_1
set /a cursorm=(cursorm+arraym-2)%%arraym+1
exit /b
:cursor_2
set /a cursorn=(cursorn+arrayn-2)%%arrayn+1
exit /b
:cursor_3
set /a cursorm=cursorm%%arraym+1
exit /b
:cursor_4
set /a cursorn=cursorn%%arrayn+1
exit /b
Reference
이 문제에 관하여(【자신용】 배치 파일로 선택사항을 GUI 표시할 때의 템플리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/plcherrim/items/49796f86a6642c3ac920
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
:select
for /l %%i in (1,1,%arraym%) do (
set commandlist[%%i]=
for /l %%j in (1,1,%arrayn%) do (
set commandlist[%%i]=!commandlist[%%i]!!cursorl[%%i][%%j]!!command[%%i][%%j]!!cursorr[%%i][%%j]!
)
)
cls
if exist "%2.txt" type "%2.txt"
for /l %%i in (1,1,%arraym%) do (
echo !commandlist[%%i]!
)
choice /c wasd%1 >nul
if %errorlevel% leq 4 (
call :cursor %errorlevel%
goto select
)
exit /b
:cursor
if not "%3" == "" set /a arraym=%2,arrayn=%3
set cursorl[%cursorm%][%cursorn%]=
set cursorr[%cursorm%][%cursorn%]=
call :cursor_%1
set cursorl[%cursorm%][%cursorn%]=【
set cursorr[%cursorm%][%cursorn%]=】
exit /b
:cursor_0
for /l %%i in (1,1,!arraym!) do (
for /l %%j in (1,1,!arrayn!) do (
set cursorl[%%i][%%j]=
set cursorr[%%i][%%j]=
)
)
set /a cursorm=1,cursorn=1
exit /b
:cursor_1
set /a cursorm=(cursorm+arraym-2)%%arraym+1
exit /b
:cursor_2
set /a cursorn=(cursorn+arrayn-2)%%arrayn+1
exit /b
:cursor_3
set /a cursorm=cursorm%%arraym+1
exit /b
:cursor_4
set /a cursorn=cursorn%%arrayn+1
exit /b
Reference
이 문제에 관하여(【자신용】 배치 파일로 선택사항을 GUI 표시할 때의 템플리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/plcherrim/items/49796f86a6642c3ac920텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)