标题: [文本处理] 批处理字符串请教 [打印本页]
作者: netdzb 时间: 2020-4-29 13:22 标题: 批处理字符串请教
我学习批处理也有一段时间了,水平就是停留在能看懂别人的代码。
自己想写就是写不出的这个阶段。比如批处理对字符串的处理问题上,
如果有一个文本里面都是英语单词,中间是空格分割的。
我想把各个单词子母倒过来,中间的分割符号还是空格应该怎么写代码。
语言都学的比较多了,批处理,shell脚本,python,vbs脚本,powershell
我都想了解一下,请编写代码能力比我厉害坛友不吝赐教。
作者: Batcher 时间: 2020-4-29 14:00
回复 1# netdzb
能否把你使用其他语言实现这个功能的代码发出来看看,以便参考你的思路写出BAT代码。
作者: netdzb 时间: 2020-4-29 14:09
本帖最后由 netdzb 于 2020-4-29 14:10 编辑
回复 2# Batcher
python版我发了,不过我的方法好像很烦。如果reverseh后join加复原空格,我是能勉强写出来的代码。
我想看一下有无更好的方法。
ubuntu linux python
变成下面的样子
utnubn xunil nohtyp
代码我自己写了一点
s = "abcde"
def str_reverse1(s):
return s[::-1]
if __name__ == '__main__':
rs = str_reverse1(s)
print(rs)
作者: went 时间: 2020-4-29 18:18
- @echo off
- set "line=ubuntu linux python"
- set "line1="
- :loop
- set "line1=%line1%%line:~-1%"
- set "line=%line:~0,-1%"
- if not "%line%"=="" goto :loop
- for %%i in (%line1%) do call set "line=%%i %%line%%"
- echo %line%
- pause&exit
复制代码
作者: netdzb 时间: 2020-4-29 20:38
回复 2# Batcher
我刚才写了2个小时,终于勉强写出来了。
和坛友的代码比较还是有差距啊。
作者: wujunkai 时间: 2020-4-30 20:26
回复 5# netdzb - @echo off & setlocal enabledelayedexpansion
-
- :main
- set "str=utnubn xunil nohtyp"
- echo 原来的字符串是 %str%
- call:deal str
- echo 倒叙字符串是 %str%
- pause
- goto:eof
-
- :deal
- set "str_cpy=!%~1!"
- set "str_don="
- call:len str_cpy
- for /L %%i in (0,1,%len%) do (
- set "str_don=!str_cpy:~0,1!!str_don!"
- set "str_cpy=!str_cpy:~1!"
- )
- set "%~1=%str_don%"
- goto:eof
-
- :len
- set len_cpy=!%~1!
- set len=0
- for %%i in (128,64,32,16,8,4,2,1) do if not "!len_cpy:~%%i,1!"=="" (
- set /A len+=%%i
- set len_cpy=!len_cpy:~%%i!
- )
- goto:eof
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |