Board logo

标题: [文本处理] 【已解决】BAT按空格分行的疑问 [打印本页]

作者: 思想之翼    时间: 2013-11-2 13:44     标题: 【已解决】BAT按空格分行的疑问

本帖最后由 思想之翼 于 2013-11-3 13:34 编辑

@echo off
(for /f "delims=" %%i in (1.txt) do (
for %%j in (%%i) do (echo.%%j)
echo.))>>模板.txt
pause

上述代码可以将txt文本中的数据9 8 7  处理为
9
8
7
而不能将txt文本中的=IF(Q2="","",--RIGHT(10+(Q1-Q2)))        =IF(R2="","",--RIGHT(10+(R1-R2)))
处理为
=IF(Q2="","",--RIGHT(10+(Q1-Q2)))       
=IF(R2="","",--RIGHT(10+(R1-R2)))

如何修改代码,使之能够进行上述文本内容的处理?
作者: batman    时间: 2013-11-2 14:59

楼主在论坛提问N帖仍是基础全无?=和,都是for的默认分隔符你不知道?
  1. @echo off
  2. cd.>模板.txt
  3. for /f "delims=" %%a in (a.txt) do set "str=%%a"&call :lp
  4. start 模板.txt&exit
  5. :lp
  6. for /f "tokens=1* delims= " %%a in ("%str%") do (
  7.   >>模板.txt echo,%%a
  8.   if "%%b" neq "" set "str=%%b"&goto lp
  9. )
复制代码

作者: batman    时间: 2013-11-2 15:01

拜托楼主抽点时间看看基础教程再来提问好吗?
作者: foxJL    时间: 2013-11-2 15:04

因为在for %%j in ( )这个括号里 逗号和空格的作用是一样的.
  1. @echo off
  2. (for /f "tokens=1,2 delims= " %%i in (a.txt) do (
  3. echo,%%i
  4. echo,%%j
  5. ))>>模板.txt
  6. pause
复制代码

作者: foxJL    时间: 2013-11-2 15:10

楼主可以学习一下这篇教程.

批处理for语句从入门到精通
http://bbs.bathome.net/thread-2189-1-1.html
作者: hzcxdgioa    时间: 2013-11-30 06:04

谢谢lz分享。。。。。。。。。




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