Board logo

标题: [文本处理] 批处理for命令delims怎么仅指定制表符? [打印本页]

作者: 857185187    时间: 2019-10-18 12:11     标题: 批处理for命令delims怎么仅指定制表符?

默认的Delims设置是同时用制表符和空格当作分割符号,但是有些路径包含空格会被分割,如何只分割4个空格的那个制表符?
我是用在注册表上面的, reg query返回的就是4个空格,而不是制表符,delims默认就会把注册表键值数据中的路径中的空格给分割开,但是delims=制表符 就会不作分割,delims=4个空格也是不作分割
作者: terse    时间: 2019-10-18 12:39

直接设置为分隔符就阔以
  1. @echo off
  2. for /f "tokens=1-4 delims= " %%a in (1.TXT) do echo;"%%a" "%%b" "%%c" "%%d"
  3. pause
复制代码

作者: 857185187    时间: 2019-10-18 13:56

回复 2# terse


    怎么在TXT中或CMD窗口中输入制表符?
作者: Batcher    时间: 2019-10-18 14:05

回复 3# 857185187


    txt里面直接按tab键就行了
作者: 857185187    时间: 2019-10-18 14:13

回复 2# terse

我又看了下,我是用在注册表上面的, reg query返回的就是4个空格,而不是制表符,delims默认就会把注册表键值数据中的路径中的空格给分割开,但是delims=制表符 就会不作分割,delims=4个空格也是不作分割
作者: Batcher    时间: 2019-10-18 14:29

回复 5# 857185187


    用冒号做为分隔符,取第一列的最后一个字符加上第二列,这样就能得到路径了。
作者: 857185187    时间: 2019-10-18 14:37

回复 6# Batcher


    主要是reg query命令不返回冒号,我就想只分割4个空格的,不分割1个空格的
作者: Batcher    时间: 2019-10-18 14:49

回复 7# 857185187


    你的想法delims是不支持的。C:\Windows 这里的冒号可以用吗?
作者: zaqmlp    时间: 2019-10-18 15:32

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢打赏
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. for /f "tokens=1,2*" %%a in ('reg query "HKLM\pe_activtionstore" /s /f "C:\Windows\SystemApps"^|findstr "\<REG_"') do (
  6.     echo;%%a
  7.     echo;%%c
  8. )
  9. echo;%info%
  10. pause
复制代码

作者: terse    时间: 2019-10-18 16:44

回复 7# 857185187
这个结果对吗
  1. @echo off
  2. for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"') do (
  3.       for /f "tokens=*" %%c in ("%%b") do  echo "%%c"
  4. )
  5. pause
复制代码

作者: 857185187    时间: 2019-10-19 12:01

回复 8# Batcher


    delims不能区别一个空格和多个空格,那么环境变量编辑支持么?我想用%str:    =;%把多个空格的替换成;号,再用"delims=;"
作者: Batcher    时间: 2019-10-21 09:01

回复 11# 857185187


不知道你说的环境变量编辑是什么
%str:    =;% 字符串替换是可以的




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2