找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19491|回复: 2

[文本处理] [已解决]批处理echo如何输出尾部不带空格或者删除文本行尾的空格

[复制链接]
发表于 2022-9-24 13:48:09 | 显示全部楼层 |阅读模式
我的想法是替换配置文件的某一行,但是后来发现尽管我替换的内容是一样的,但是fc比较不一样,后来发现可能是我要替换的配置文件本事unix格式的,但是输出之后就会变成windows cr cl格式,后来使用了dos2unix命令转换,但是发现配置文件依旧无法被程序正确读入,再后来比较直接修改的配置文件和命令替换的配置文件,发现命令替换的配置文件每行后面都多了一个空格,这可能是echo > echo>>换行导致的,删除这些空格后发现就可以被正常读入了,问题在于用什么格式的命令输出到文本才可以换行但不在尾部添加空格呢,或者输入文本之后删除文本行尾的空格求助
 楼主| 发表于 2022-9-25 13:57:23 | 显示全部楼层
已解决,是语法错误,echo输出的内容包括第一个空格后边到重定向符号之间的所有内容,如果重定向符号之间有空格,也会输出空格,所以输出内容必须紧贴重定向符号,然后就是不知道为什么do(echo sss>"%~dp0a.txt" )也会在行尾输出空格,去掉括号前的空格,即(echo sss>"%~dp0a.txt")就没有,这就让我很奇怪了
发表于 2022-9-25 18:51:24 | 显示全部楼层
回复 1# waitfortea


把重定向放在左边试试,参考:
http://bbs.bathome.net/thread-13860-1-1.html#pid233014
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set /p "proxyhost=代理地址:"
  5. set /p "proxyport=代理端口:"
  6. set /p "downloadpath=下载路径:"
  7. set "num=0"
  8. cd. >a.txt
  9. for /f "tokens=1-2 delims==" %%a in (application.properties) do (
  10.         if "comic.proxy.host" equ "%%a" (
  11.                 for %%i in (a.txt) do (
  12.             if %%~zi equ 0 (
  13.                 >"%~dp0a.txt" echo,%%a=%proxyhost%
  14.             ) else (
  15.                 >>"%~dp0a.txt" echo,%%a=%proxyhost%
  16.             )
  17.         )
  18.         ) else if "comic.proxy.port" equ "%%a" (
  19.                 for %%i in (a.txt) do (
  20.             if %%~zi equ 0 (
  21.                 >"%~dp0a.txt" echo,%%a=%proxyport%
  22.             ) else (
  23.                 >>"%~dp0a.txt" echo,%%a=%proxyport%
  24.             )
  25.         )
  26.         ) else if "comic.download.path" equ "%%a" (
  27.                 for %%i in (a.txt) do (
  28.             if %%~zi equ 0 (
  29.                 >"%~dp0a.txt" echo,%%a=%downloadpath%
  30.             ) else (
  31.                 >>"%~dp0a.txt" echo,%%a=%downloadpath%
  32.             )
  33.         )
  34.         ) else if %%~zi equ 0 (
  35.         >"%~dp0a.txt" echo,%%a=%%b
  36.     ) else (
  37.         echo,%%a
  38.         >>"%~dp0a.txt" echo,%%a=%%b
  39.     )
  40. )
  41. for /f %%l in (a.txt) do (
  42.         echo,%%l
  43.         set /a num+=1
  44.         if !num! equ 1 (
  45.         >application.properties echo,%%l
  46.     ) else (
  47.         >>application.properties echo,%%l
  48.     )
  49. )
  50. dos2unix application.properties
  51. pause

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:34 , Processed in 0.015920 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表