无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4683|回复: 7
打印 上一主题 下一主题

如何实现批处理获取字符串中最后一个空格后的所有字符

[复制链接]
跳转到指定楼层
1#
发表于 2021-7-15 14:56:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式


如何实现批处理获取字符串中最后一个空格后的所有字符

比如字符串  ab cd ef klol
批处理容易实现:以空格为分隔符,可分成4组字符串

如果字符串以空格为分隔成的组数是不确定的,批处理如何实现获取字符串中最后一个空格后的所有字符

2#
发表于 2021-7-15 15:15:00 | 只看该作者
11111
回复

使用道具 举报

3#
发表于 2021-7-15 15:47:23 | 只看该作者
测试 : Windows 7 X64.

1. 由 参数
1. 由 字符串





a.rar

270 Bytes, 下载次数: 16, 下载积分: 无忧币 -2

点评

谢谢 我的环境是32位 win7  发表于 2021-7-15 21:40
回复

使用道具 举报

4#
发表于 2021-7-15 15:47:39 | 只看该作者
可以用c++吗
回复

使用道具 举报

5#
发表于 2021-7-15 16:20:11 来自手机 | 只看该作者
有个简单的写法,多少列就相等于变量赋值了多少次,取最后的值。
由于for和set的执行效率高,所以即使是3~4万字,1万列,也不过耗时半秒钟而已(以每列内容aaa来测试)。

for /d %a in (a b c d) do set var=%a

点评

太厉害了,1万列,也不过耗时半秒钟  发表于 2021-7-15 21:41
回复

使用道具 举报

6#
发表于 2021-7-17 22:50:27 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-7-17 23:38 编辑

这就是 传说中 获取 某行文字中某个单词的 古老命题。
最后一个 ,属于特例,容易些,否则就需要做个 计数器。




  1. @echo off

  2. rem 获取某字符串特定位置单词内容,第一个参数为 位置,以后为字符串内容
  3. rem 如: strings-1  5  ab cd ef gh ij kl mn ,将得到 ij
  4. rem      strings-1  -1 ab cd ef gh ij kl mn ,将得到 mn

  5. setlocal EnableDelayedExpansion

  6. call :n_str %*
  7. if %1 gtr 0 (set /a x=%1)
  8. if %1 lss 0 (set /a x=!n!+%1+1)
  9. for /l %%c in (1,1,!n!) do (
  10.         if !x! equ %%c echo %1 = [!str%%c!]
  11. )

  12. pause
  13. goto:eof


  14. :n_str
  15.         set n=0
  16.         :loop
  17.                 if not "%~2"=="" (
  18.                         set /a n=!n!+1
  19.                         set str!n!=%2
  20.                         shift /2
  21.                         goto loop
  22.                 )
  23. exit /b
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 14:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表