[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样提取字符?

答案在11楼
如下:
  开始--运行--cmd
C:\Documents and Settings\Administrator>d:
D:\>cd proewildfire 4.0\bin
D:\proeWildfire 4.0\bin>ptchostid.bat
解说:当我输入ptchostid.bat时就会出现下面的结果

PTC HOSTID = 00-1D-7D-74-B5-C7


我想提取 00-1D-7D-74-B5-C7 号码 但是每电脑这个号码都不一样,想完成这样的效果批处理应该如何写?   
请知道的老大,讲下,,谢谢

[ 本帖最后由 sbjatje 于 2010-9-10 16:21 编辑 ]

第三方命令行程序
set "str=替换"
sed -i "00-1D-7D-74-B5-C7/%str%/" ptchostid.bat

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=~" %%a in (1.txt) do (set t=%%a
  4.   if "!t:~11,1!"=="="  (echo !t:~13,17!)
  5. )
  6. pause
复制代码
可以的

TOP

好好学习FOR /f吧!~
注意观察“PTC HOSTID = 00-1D-7D-74-B5-C7”,里面的标点符号有【=】和【-】,用做分隔符的话应嘎提取2-7节。
代码自己写,又不学习又老是问这种超出自己能力的事情。

TOP

  1. @echo off
  2. cd /d "D:\proeWildfire 4.0\bin"
  3. for /f "tokens=4" %%a in ('ptchostid.bat') do (
  4.     set "str=%%a"
  5. )
  6. echo,%str%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. "proeWildfire 4.0\bin\ptchostid.bat" | sed "s/.*= //"
复制代码

TOP

谢谢各位,老大们

上面的回答都是字符的提取,,,
   我的前提是先运行,ptchostid.bat  再提取他的显示结果中的那一组号码,,,,而不是直接把PTC HOSTID = 00-1D-7D-74-B5-C7 ,这个拿来取00-1D-7D-74-B5-C7

[ 本帖最后由 sbjatje 于 2010-9-10 14:57 编辑 ]

TOP

batcher 这个批处理,运行不了。

@echo off
for /f "tokens=4" %%a in ('"D:\proeWildfire 4.0\bin\ptchostid.bat"') do (
    set "str=%%a"
)
echo,%str%

  说ptchostid,bat不是内部指令。。。。。
   请batcher 简说下,是不是在批处理中不能用ptchostid.bat,不能有*.bat的文件

TOP

批处理怎样提取字符?

群里的大侠们好:
    问个问题  我这个批处理为什么后半节执行不了,就是从F:开始下面是做字符替换的。。。
前面的1.txt能产生,后面就执行不了,是不是中间要加什么语名,,,,谢高手指导下
  1. @echo off
  2.   d:
  3. cd proewildfire 4.0\bin
  4. ptchostid >>d:\1.txt
  5. f:
  6. cd setup\4.0crack
  7. setlocal enabledelayedexpansion
  8. for /f "tokens=4 delims= " %%a in (d:\1.txt) do set mac=%%a
  9. (for /f "delims=" %%i in (ptc_licfile.txt) do (
  10.   set str=%%i
  11.   set str=!str:00-00-00-00-00-00=%mac%!
  12.   echo !str!
  13. ))>tmp_
  14. del ptc_licfile.txt
  15. ren tmp_ ptc_licfile.txt
复制代码
路过的大侠们帮我看下,那里写错了,,,,

TOP

回复 8楼 的帖子

4楼代码已更新,请重新测试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这样写就行了,,,

@echo off
  d:
cd proewildfire 4.0\bin
ptchostid >>d:\1.txt

就会在D盘的1.txt记录ptchostid运行的结果。。。。

TOP

返回列表