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

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

我的想法是替换配置文件的某一行,但是后来发现尽管我替换的内容是一样的,但是fc比较不一样,后来发现可能是我要替换的配置文件本事unix格式的,但是输出之后就会变成windows cr cl格式,后来使用了dos2unix命令转换,但是发现配置文件依旧无法被程序正确读入,再后来比较直接修改的配置文件和命令替换的配置文件,发现命令替换的配置文件每行后面都多了一个空格,这可能是echo > echo>>换行导致的,删除这些空格后发现就可以被正常读入了,问题在于用什么格式的命令输出到文本才可以换行但不在尾部添加空格呢,或者输入文本之后删除文本行尾的空格求助

已解决,是语法错误,echo输出的内容包括第一个空格后边到重定向符号之间的所有内容,如果重定向符号之间有空格,也会输出空格,所以输出内容必须紧贴重定向符号,然后就是不知道为什么do(echo sss>"%~dp0a.txt" )也会在行尾输出空格,去掉括号前的空格,即(echo sss>"%~dp0a.txt")就没有,这就让我很奇怪了

TOP

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

TOP

返回列表