Board logo

标题: [文本处理] 求助批处理TXT文件首位添加固定字符如何去除换行符? [打印本页]

作者: zhuyihzx    时间: 2023-9-19 14:39     标题: 求助批处理TXT文件首位添加固定字符如何去除换行符?

需要批量给txt文件开头添加字符##,
但是怎么改都会有换行,请高手帮忙解决,谢谢!~

需要:
你好,世界
得到:
##你好,世界

目前得到的是如下,多一个换行,
##
你好,世界
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s *.txt') do (
  3. echo %%i
  4. (echo ##
  5. type "%%i" )>tem.yky
  6. move tem.yky "%%i")
复制代码

作者: Batcher    时间: 2023-9-19 14:51

回复 1# zhuyihzx


    只在第一行开头添加吗?还是每一行开头都添加?
作者: zhuyihzx    时间: 2023-9-19 14:52

回复 2# Batcher
就是开头的第一行就行了,谢谢
作者: qixiaobin0715    时间: 2023-9-19 15:10

本帖最后由 qixiaobin0715 于 2023-9-19 15:22 编辑

请在与批处理同目录处新建一个文本文件00.txt,其内容为##,只一行不要回车。
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /a-d *.txt') do (
  3.     copy /b "00.txt"+"%%i" "temp"
  4.     move "temp" "%%i"
  5. )
复制代码

作者: zhuyihzx    时间: 2023-9-19 15:19

请在与批处理同目录处新建一个文本文件00.txt,其内容为##,只一行不要回车。
qixiaobin0715 发表于 2023-9-19 15:10


好像不行,显示如下信息,

copy /b "00.txt+E:\123\
move "temp" "E:\123\
文件名、目录名或卷标语法不正确。
已复制         0 个文件。
系统找不到指定的文件。
作者: qixiaobin0715    时间: 2023-9-19 15:23

回复 5# zhuyihzx
已修改
作者: zhuyihzx    时间: 2023-9-19 15:29

回复 6# qixiaobin0715


可以增加了,但是有个小问题,
运行后先在00.txt上增加了##,然后后续的##都变成####了,
有没有办法不用外接00.txt,直接在BAT中加上##呢?
感谢大佬的帮忙
作者: qixiaobin0715    时间: 2023-9-19 15:38

本帖最后由 qixiaobin0715 于 2023-9-19 15:40 编辑

将文本文件00.txt修改为00.log,代码中的00.txt也修改为00.log,再试试。
直接使用代码加效率不如这样好。
作者: zhuyihzx    时间: 2023-9-19 15:40

回复 8# qixiaobin0715
    感谢大佬,可以用了,
作者: Five66    时间: 2023-9-19 15:44

不知行否
  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s *.txt') do (
  3. echo %%i
  4. set/p=##>tem.yky <nul
  5. type "%%i" >>tem.yky
  6. move tem.yky "%%i"
  7. )
复制代码

作者: Batcher    时间: 2023-9-19 15:50

回复 7# zhuyihzx


不需要事先准备外部文件的方法
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /a-d /b /s *.txt') do (
  4.     echo %%i
  5.     set /p =##<nul >temp.yky
  6.     type "%%i" >>temp.yky
  7.     move /y temp.yky "%%i" >nul
  8. )
复制代码

作者: 77七    时间: 2023-9-19 16:25

  1. @echo off
  2. for /f "delims=" %%i in ('dir /a-d /b /s *.txt') do (
  3. set /p str=<"%%i"
  4. >$ call echo ##%%str%%
  5. >>$ more +1 "%%i"
  6. move $ "%%i"
  7. )
  8. pause
复制代码





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