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

[文本处理] 批处理如何将文本里的多行字符串合并成一行并在指定行内容后面实现换行

本帖最后由 pcl_test 于 2016-12-14 20:55 编辑

delims=13 怎么添加13为分隔符
ss.txt
11
6
10
13
16
14
11
1
10
13
1
9
8
12
6
5
15
13
8
3
14
9
15
6
1
11
4
13
12
  1. @echo off
  2. for /f "tokens=1-3 delims=13" %%a in (ss.txt) do (set /p=%%a <nul>>183.txt)
复制代码
输出:606409826558495642
这是啥 这是啥???
--------------------
希望结果:
11 6 10 13
16 14 11 1 10 13
1 9 8 12 6 5 15 13
8 3 14 9 15 6 1 11 4 13
1

评分人数

回复 12# ads350668398


for命令的教程里面有介绍,仔细读一遍就知道啦。
http://bbs.bathome.net/thread-2189-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 10# Batcher


    是从这个结果 知道1 3都是分隔符的么?
606409826558495642

TOP

本帖最后由 /zhqsystem/zhq 于 2016-12-15 00:39 编辑

回复 1# ads350668398
醉了问题真多,基础牢固也不需要这么多问题了
  1. for /f "delims=" %%i in ('type "%~f1"')do if /i "%%i"=="13" (set "#=!#! %%i"
  2. for /l %%n in (1,1,10)do if /i "!#:~0,1!"==" " set "#=!#:~1!"
  3. echo,!#!
  4. set "#=")else if defined # (set "#=!#! %%i")else set "#=%%i"
  5. )
  6. if defined # echo,!#!&&rem:此行用于结尾非13的行合并
复制代码
1

评分人数

    • ads350668398: 不知道什么时候开始发现_$#*字符我就完全蒙 ...技术 + 1
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 8# ads350668398


    因为delims=13的话,数字1和数字3都是分隔符。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. echo off&cls
  2. setlocal ENABLEDELAYEDEXPANSION
  3. (for /f "tokens=1* eol=" %%a in (text.txt) do set tmp=%%a&&echo=!tmp:13=^|!)>tmp.txt
  4. 然后就for/f"delims=^|"就可以咯
复制代码
1

评分人数

TOP

delims=13的结果
606409826558495642
为什么?

TOP

echo echo s
s就换行了

TOP

回复 5# GNU


    是这个上面其实我是忘记写s【 delims="】
但是后 发下 写和不写结果是一样的??

TOP

本帖最后由 GNU 于 2016-12-14 18:18 编辑

回复 4# ads350668398
  1. @echo off
  2. (for /f %%a in (ss.txt) do (
  3.     if %%a==13 (
  4.         echo,
  5.         echo,s
  6.     ) else (
  7.         set /p=%%a <nul
  8.     )
  9. ))>183.txt
复制代码
1

评分人数

TOP

本帖最后由 ads350668398 于 2016-12-14 17:41 编辑
  1. @echo off
  2. for /f "tokens=1-3 delims=" %%a in (ss.txt) do (
  3. if %%a==13 (echo s>>183.txt) else (set /p=%%a <nul>>183.txt))
复制代码
11 6 10 s
16 14 11 1 10 s
1 9 8 12 6 5 15 s
8 3 14 9 15 6 1 11 4 s
12
这是个意外??
为什么会这样??菜鸟求解释下
delims="这里没有用S分割??

TOP

回复 2# Batcher


    是啊跟你说的一样
没有我想要是还是

TOP

for命令教程第22页有介绍:不要企图把字符串作为一个整体分隔符
http://bbs.bathome.net/thread-31727-1-1.html
1

评分人数

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

TOP

返回列表