返回列表 发帖

[文本处理] 退格符获取批处理函数

示例代码如下:
@echo off&setlocal enabledelayedexpansion
::下面tg为退格符的变量名,可以自行修改
call :get_tg tg
for /l %%a in (1,1,6) do set "k=!k!%tg% %tg%"
set /p=bathome-123456<nul
ping /n 2 127.1>nul
set /p=%k%batman<nul
pause>nul&goto :eof
%------------------------退格符获取函数------------------------%
:get_tg
(echo A100&echo MOV DL,08&echo MOV AH,02&echo INT 21&echo INT 20&echo,&echo G&echo q)>db&set "%1="
for /f "skip=8" %%a in ('debug^<db') do if not defined %1 set "%1=%%a"
del /q db
%------------------------退格符获取函数------------------------%COPY
***共同提高***

这下大家在写特效时不要到处找别人的代码复制粘贴退格了,呵呵。。。

正在设法获取tab中(苦恼+头痛ing...)。。。
***共同提高***

TOP

@echo off
set JSF="%TMP%\TAB.JS"
echo=WScript.echo(String.fromCharCode(9));>%JSF%
for /f "delims=" %%t in ('cscript //nologo %JSF%')do set "t=%%t"
::变量t为TAB
pauseCOPY

TOP

1# batman


如果掉debug这个三方的话有些大材小用,我们一般都是到了最无奈的时候,比如必须要使用一个三方工具,但又嫌下载麻烦,直接嵌到bat中。

如果用它了,那完全可以做个ascii码获取通用函数了

TOP

1# batman


退格符的获取,可以用cmd的内置命令得到:
@echo off
call:getbs bs
echo abc%bs%#
pause
:getbs
for /F %%a in ('"prompt $h&for %%b in (1) do rem"')do Set "%~1=%%a"COPY
1

评分人数

    • zm900612: 干得漂亮,原来“pl*”这个名字就是漂亮的意 ...技术 + 1

TOP

看看就好,不必当真
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

我只看到几句汇编了,我想不用看懂了

TOP

可以用debug做个从文件读入十六进制,然后输出为二进制文件的批处理了

echo exit|cmd /k prompt ecs:100 01 02  11 12 21 22 31 32$_rcx$_8$_ntmp.bin$_w$_q$_|debug

TOP

生成退格键

【方法1】
for /f %%i in ('"prompt $H & for %%j in (1) do rem"') do (
    set "KeyBackspace=%%i"
)COPY
【方法2】
for /f %%i in ('echo prompt $H ^| cmd') do (
    set "KeyBackspace=%%i"
)COPY
【方法3】
打开edit,按Ctrl+P,按完之后按下退格键,保存文本。

【方法4】
打开记事本,按住ALT不放,按小键盘上的127。

【方法5】
bat + mshta
@echo off
mshta vbscript:inputbox("",,chr(8))(close)COPY
【方法6】
@echo off&title 请关闭此窗口 Code By plp626&if not %1.==. goto%*
for /f "delims=" %%a in ('cmd /s/k "prompt $h&%~s0 :x"')do echo.%%a>tuige.txt
:xCOPY
【方法7】
echo exit/b>a.bat&prompt $h&a.bat>>a.bat&notepad a.batCOPY
【方法8】
::@@ 运行后,@就变成了退格符了
@echo off
pushd "%~dp0"
(echo e 102 8 8&echo;w&echo;q)|debug %~nx0
notepad %~nx0COPY
生成ESC键
【方法1】
for /f %%i in ('"prompt $E & for %%j in (1) do rem"') do (
    set "KeyESC=%%i"
)COPY
【方法2】
for /f %%i in ('echo prompt $E ^| cmd') do (
    set "KeyESC=%%i"
)COPY
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

了解学习一下
[url=http://www.yan.com]yan[/url]

TOP

返回列表