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

或者
>b.txt echo 代码
>>b.txt echo 代码

这样和上面的形式一样,也不行吗。为什么我的顶楼的就可以,就是因为多了特殊字符码

TOP

是的,比如
echo echo 123>1.txt >2.txt
这句话,你说程序会怎么判断?
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

  1. > test.reg ECHO Windows Registry Editor Version 5.00
  2. >>test.reg ECHO.
  3. >>test.reg ECHO [HKEY_LOCAL_MACHINE\SOFTWARE]
复制代码
如果上面的不行的话,如果reg2bat转换成的bat,如果里面有特殊字符,最后用这个bat生成的reg文件也是有问题或者无法生成的吗。就是说这个转换并不是很保险是吗?

TOP

自动在>前面加一个^就可以了吧。

TOP

不行呀,第一个方案还不行,还是十四楼的测试代码,转换后的代码如下:
  1. (
  2. echo   ::=====================================================
  3. echo   :: code by freeants  CMD@XP  version:1.00
  4. echo   ::=====================================================
  5. echo   @echo off
  6. echo   cd/d "%~dp0">nul
  7. echo   if "%~z1" equ "" goto:usage
  8. echo   if %~z1 gtr 65280 goto:NOT_SUPPORT
  9. echo   setlocal ENABLEDELAYEDEXPANSION
  10. echo   copy/b "%~1" $$$>nul
  11. echo   set/a D_NUM=%~z1+255
  12. echo   call:DEC_HEX %D_NUM% >nul
  13. echo   echo @echo off>"%~n1.cmd"
  14. echo   echo more +5 "%%~0"^|debug^&graftabl 936^>nul>>"%~n1.cmd"
  15. echo   echo copy/b/y $tmp$ "%~nx1"^>nul>>"%~n1.cmd"
  16. echo   echo del/a/f/q $tmp$>>"%~n1.cmd"
  17. echo   echo goto:eof>>"%~n1.cmd"
  18. echo   for /f "eol=- skip=1 tokens=*" %%i in ('^(echo d100,%FILE_SIZE%^&echo q^)^|debug $$$^&^&del $$$') do (
  19. echo       set op=%%i
  20. echo       set op=-=
  21. echo       echo e~5,53 2>nul>>"%~n1.cmd"
  22. echo   )
  23. echo   echo rcx>>"%~n1.cmd"
  24. echo   call:DEC_HEX %~z1 >nul
  25. echo   echo %FILE_SIZE%>>"%~n1.cmd"
  26. echo   echo n$tmp$>>"%~n1.cmd"
  27. echo   echo w>>"%~n1.cmd"
  28. echo   echo q>>"%~n1.cmd"
  29. echo   goto :EOF
  30. echo   :DEC_HEX
  31. echo       set FILE_SIZE=
  32. echo       set PATTERN=123456789ABCDEF
  33. echo       set dec=%1
  34. echo       :WHILE
  35. echo       set /a res=%dec%%%16-1
  36. echo       set /a dec/=16
  37. echo       set res=~%res%,1
  38. echo       set FILE_SIZE=%res%%FILE_SIZE%
  39. echo       if "%dec%" neq "0" goto WHILE
  40. echo   goto:eof
  41. echo   :usage
  42. echo       echo.================================================
  43. echo       echo 你没有指定要处理的文件或指定的文件不存在……
  44. echo       echo.
  45. echo       echo 用法:
  46. echo       echo       %~n0 fileName
  47. echo       echo.================================================
  48. echo   goto:eof
  49. echo   :NOT_SUPPORT
  50. echo      echo 指定的文件过大,脚本(%~nx0)不能处理……
  51. echo      pause
  52. echo   goto:eof
  53. )>a.bat
复制代码
运行后还是无法生成a.bat

TOP

倒腾来 倒腾去  A.BAT 内容 还是原文件 不是吗?

TOP

1,如果内容中没有需要处理的变量,则直接使用 more ,优点是无敏感字符问题
2,如果文本中有需要处理的变量则使用 for /f 加 more 或 if 判断
3,如果内容只有几行,直接用 echo
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表