[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
给一段 效率 非常低的代码:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (1.txt) do call :Get_Res "%%i"
  3. pause>nul
  4. Rem '/*去掉右侧的空格;
  5. :Rtrim
  6. set var=%*
  7. goto :eof
  8. Rem '/*==============================
  9. Rem '/*去掉首字符,交换尾字符串位置
  10. :Get_Res obj
  11. Rem '/*去掉首字符串
  12. set var=%~1
  13. set var=%var:* =%
  14. Rem '/*==============================
  15. call :Rtrim %var%
  16. set str=%var: =# % %======将空格替换为 #+空格 的形式===========%
  17. set "cx="
  18. for %%i in (%str%) do (
  19.      set str_=%%i %======取得最后一串字符===========%
  20.      call set cx=%%i!cx!)  %======将字符串倒序=========%
  21. set cx=%cx:#= #%         %======将#替换为 空格+# 的形式===========%
  22. set cx=%cx:* =%          %======去掉第一串字符====================%
  23. set "res="
  24. for %%i in (%cx%) do set "res=%%i!res!"    %======将字符串倒序=========%
  25. set "res=%res:#= %"                      %======将 # 替换回 空格=====%
  26. echo %str_%%res%
复制代码

TOP

借鉴了 foxjl 的代码,尽量精简了代码;
函数版:
  1. @echo off
  2. ::注意,代码中不能含有字符:*
  3. for /f "tokens=1,* delims=" %%i in (a.txt) do call :Get_Res "%%i"
  4. pause>nul
  5. :Get_Res obj
  6. set "var=%~1"
  7. call :Rtrim %var%
  8. for %%i in (%var%) do "set str=%%i"
  9. call set "var=%%var:%str%=%%"
  10. echo %str:~0,-1% %var%
  11. goto :eof
  12. Rem '/*去掉右侧的空格;
  13. :Rtrim
  14. set var=%*#
复制代码

TOP

非函数最简版:
  1. @echo off & setlocal enabledelayedexpansion
  2. ::注意,代码中不能含有字符:*和其它特殊字符
  3. for /f "tokens=1,* delims=" %%i in (a.txt) do (
  4.     call :Rtrim %%i
  5.     for %%j in (!var!) do set str=%%j
  6.     call set var=%%var:!str!=%%
  7.     echo !str:~0,-1! !var!)
  8. pause>nul
  9. :Rtrim
  10. set var=%*#
复制代码

TOP

最后的字符虽然不是唯一的,但是我给它加上了一个特殊 标记: * 啊
不过 不能有一种很特殊的情况....

TOP

返回列表