本帖最后由 523066680 于 2021-5-7 09:03 编辑
偶然看到的一个问答
Yay! I had given up hope of ever getting a pure batch solution. Nicely done.
get-cursor-position-via-windows-10-console-vt-100-escape-sequence- @echo off
- for /F "delims=#" %%a in ('"prompt #$E# & for %%a in (1) do rem"') do set "ESC=%%a"
-
- call :get_cursor_pos
- exit /b
-
- :get_cursor_pos
- set "response="
- set pos=2
-
- :_get_loop
- REM *** Request Cursor position
- <nul set /p "=%ESC%[6n"
- FOR /L %%# in (1 1 %pos%) DO pause < CON > NUL
-
- for /F "tokens=1 skip=1 eol=" %%C in ('"REPLACE /W ? . < con"') DO (
- set "char=%%C"
- )
- set "response=%response%%char%"
- set /a pos+=1
- if "%char%" NEQ "R" goto :_get_loop
-
- set response
- exit /b
复制代码 其他参考:
https://www.dostips.com/forum/viewtopic.php?t=9454 |