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

[文本处理] [已解决]批处理怎样在文本每一行开头插入一条语句?

假设文本是
  1. helo
  2. ello
  3. echo hello
  4. good
复制代码
每一行要插入的语句是 >>c:\hello.bat echo
echo后要有一个空格

[ 本帖最后由 Hello123World 于 2011-2-2 21:52 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2

1,输出批处理内的字符到文件,变量不被扩展:
  1. @echo off
  2. >c:\hello.bat more 3+<"%~f0"
  3. exit
  4. helo1>2
  5. ello%n%
  6. echo hello!n!
  7. good
复制代码
2,输出批处理内的字符到文件,包含被扩展的变量值(只有!n!被扩展):
  1. @echo off&setlocal enableDelayedExpansion
  2. set n=123
  3. (for /f "delims=" %%a in ('more +4^<"%~f0"') do echo;%%a)>c:\hello.bat
  4. exit
  5. helo1^>2
  6. ello%n%
  7. echo hello!n!
  8. good
复制代码
3,输出批处理内的字符到文件,包含被扩展的变量值(!n!和%n%都被扩展):
  1. @echo off&setlocal enableDelayedExpansion
  2. set n=123
  3. (echo;helo1^>2
  4. echo;ello%n%
  5. echo;echo hello!n!
  6. echo;good)>c:\hello.bat
复制代码

[ 本帖最后由 hanyeguxing 于 2011-2-1 19:25 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 2楼 的帖子

可能我没描述清楚,其实我的意思就是操作文本,在文本的每一行最开始插入一些文字,比如插入:“>>c:\hello.bat echo ”这些字符

TOP

回复 3楼 的帖子

  1. @echo off
  2. (for /f "usebackq delims=" %%a in ("1.txt") do (
  3.     set "a=%%a"
  4.     setlocal enableDelayedExpansion
  5.     echo;^>^>c:\hello.bat echo !a!
  6.     endlocal
  7. ))>"1_.txt"
复制代码
1.txt中不得包含不能被处理的敏感字符

[ 本帖最后由 hanyeguxing 于 2011-2-2 20:05 编辑 ]
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 4楼 的帖子

谢谢,happy new year

TOP

回复 4楼 的帖子

  1. @echo off
  2. (for /f "usebackq delims=" %%a in ("1.txt") do (
  3.    
  4.    
  5.     echo ^>^>c:\hello.bat echo %%a
  6.    
  7. ))>"1_.txt"
复制代码
这里没必要启用变量延迟啊,反正都是逐行执行。
在echo后加上 ; 有什么好处吗?

[ 本帖最后由 Hello123World 于 2011-2-3 13:31 编辑 ]

TOP

返回列表