无忧启动论坛

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

[求助] cmd 如何截取字串

[复制链接]
跳转到指定楼层
1#
发表于 2014-1-14 17:32:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wang6610 于 2014-1-14 17:45 编辑

批处理截取 ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh  其中的 "cccg0hzg5uik2"  并赋值 给变量 aa .
2#
发表于 2014-1-14 20:47:29 | 只看该作者
就这一行数据?有啥规律么 ?要截取 的内容 有啥特点 ?

截取倒是 容易 用 %x:~n,y% 之类的就行了。

关键是要有 规律性 才好写入 脚本 ,不然 直接手动 输入岂不是更方便?
回复

使用道具 举报

3#
 楼主| 发表于 2014-1-14 21:01:53 | 只看该作者
本帖最后由 wang6610 于 2014-1-14 21:07 编辑

谢谢 dos时代菜鸟兄弟 回帖!


ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh


应该是有很多行.每行中 cccg0hzg5uik2 都不同, 都是从每行倒数第6个字符开始共13个,


一次截取某行中的cccg0hzg5uik2 赋值给一个变量.
回复

使用道具 举报

4#
发表于 2014-1-15 08:04:38 | 只看该作者
是随机截取某一行?还是 最后一行?还是 。。。。。?
下面这个是显示所有行 你要的那截字符串。 然后。。。。哈哈,自己研究吧。

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f %%c in (file.txt) do (
  4.   set str=%%c
  5.   echo  !str:~-18,13!
  6. )
复制代码

点评

谢谢 dos时代菜鸟兄弟 回帖! 您给的bat 结果前后都有多余的空格。 能实现下面的功能吗? @echo off set str=ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh ..... 通过截取str变量中的 cccg0hzg5uik  详情 回复 发表于 2014-1-16 20:42
回复

使用道具 举报

5#
 楼主| 发表于 2014-1-16 20:42:07 | 只看该作者
dos时代菜鸟 发表于 2014-1-15 08:04
是随机截取某一行?还是 最后一行?还是 。。。。。?
下面这个是显示所有行 你要的那截字符串。 然后。。 ...


谢谢 dos时代菜鸟兄弟 回帖!

您给的bat 结果前后都有一个多余的空格。

能实现下面的功能吗?
@echo off
set str=ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh
.....
通过截取str变量中的 cccg0hzg5uik2 赋值给 aa变量 吗?
回复

使用道具 举报

6#
发表于 2014-1-17 08:30:13 | 只看该作者
for,/f,"tokens=2 delims=_",%%i,In (file.txt) Do (
               set a=%%i
)
for,/f,"tokens=1 delims=.",%%i,In ("%a%") Do (
               set aa={%%i}
)
echo %aa%
pause

点评

谢谢回符......................  详情 回复 发表于 2014-1-18 11:31
回复

使用道具 举报

7#
发表于 2014-1-17 09:04:13 | 只看该作者
空格?这个。。。。,不是技术问题,是手法问题,
把 "echo  !str:~-18,13! ”  换成 "echo !str:~-18,13!"

就是语句中 随笔多带了两个空格造成的,如果用set 命令进行赋值 可以加上 引号避免之。

回复

使用道具 举报

8#
发表于 2014-1-17 09:08:22 | 只看该作者
本帖最后由 pznpt 于 2014-1-17 09:15 编辑
  1. @echo off
  2. set "str=ffff://vvvv.fffff.dd/ffffff/fff_cccg0hzg5uik2.hhhh"
  3. for /f "delims=" %%i in ("%str:_=/%") do set "aa=%%~ni"
  4. echo,%aa%
  5. pause
复制代码

回复

使用道具 举报

9#
 楼主| 发表于 2014-1-17 11:32:52 | 只看该作者
谢谢pznpt 兄弟回帖.........
回复

使用道具 举报

10#
 楼主| 发表于 2014-1-18 11:31:12 | 只看该作者
fuldho 发表于 2014-1-17 08:30
for,/f,"tokens=2 delims=_",%%i,In (file.txt) Do (
               set a=%%i
)

谢谢回符......................
回复

使用道具 举报

11#
发表于 2014-2-20 14:49:50 | 只看该作者
不错,支持一下!很好用谢谢!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-8 15:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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