Board logo

标题: [文本处理] [已解决]批处理命令echo+ >> 空格问题 [打印本页]

作者: guoguo163    时间: 2021-9-7 15:14     标题: [已解决]批处理命令echo+ >> 空格问题

本帖最后由 guoguo163 于 2021-9-8 17:06 编辑

一个config.ini配置文件
  1. [tab]
  2. max=10
  3. [config]
  4. mute=0
复制代码
执行echo 命令在尾部添加
  1. echo+ >> config.ini
  2. echo [ins]>> config.ini
  3. echo fee=123 >> config.ini
复制代码
这个是一个示例文件,第二个人拿这个示例文件需要生成很多 fee=xxx 的不同文件
写了如下批处理
  1. set newline=fee=%1
  2. for /f "delims=" %%a in ('findstr "fee=" config.ini')do (
  3. for /f "delims=" %%i in ('type "config.ini"') do (
  4. if %%i==%%a (echo %newline%>>newconfig.ini)else echo %%i>>newconfig.ini ) )
  5. pause
复制代码
问题来了,修改的文件会出现很多ECHO 处于打开状态。
仔细看了,原来echo+ >> config.ini 会插入一个空格的空行,导致替换到这行参数空值。
如何避免产生ECHO 处于打开状态。 或者 ECHO+ >> 空格问题
作者: Batcher    时间: 2021-9-7 15:28

回复 1# guoguo163


参考:Q-09: echo 命令重定向写入文本行尾有多余的空格
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ

参考:批处理动态生成脚本或文件
https://mp.weixin.qq.com/s/McvY4CiR-SYGaCha7lmjIw
作者: guoguo163    时间: 2021-9-8 17:09

回复 2# Batcher


    感谢管理员帮助。
    echo+ >> config.ini  改成
    >>config.ini  echo+   解决换行前面空格问题,导致循环取空值问题




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