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

【已解决】(急)15元改一个成品:因为变量延迟,输出的字符串里叹号都没了

  [复制链接]
发表于 2013-12-17 13:31:11 | 显示全部楼层 |阅读模式
本帖最后由 wheat611 于 2013-12-18 09:31 编辑

具体报酬:15元人民币
支付方式:支付宝转账,网银转账。
联系方式:QQ 56667011
有效期限:13/12/18之前
需求描述:
下面是某.bat文件全文。
第79行输出语句 ECHO;!str1!>>"!curPath!\tmp.c"里面,把叹号全删掉了,但是变量延迟我不会改。
改一下能原样输出就行。
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION

  3. SET "curPath=%CD%"
  4. SET "aFolder=adlint"
  5. SET "var1=/usr/include"
  6. SET "var2=#include"
  7. SET "var3=!curPath:\=/!"
  8. SET "var3=!var3!/copy/usr/include"
  9. SET "var4=common\interface\include"
  10. SET "HEXE=%1"


  11. IF "!HEXE!" EQU "" (
  12. ECHO Hidemaru is searching...
  13. FOR %%i IN ("C:\Program Files") DO (
  14.   FOR /F "delims=" %%B IN ('DIR /S /B %%i\Hidemaru.exe') DO (
  15.    IF EXIST "%%B" (
  16.     SET "HEXE=%%B"
  17.     GOTO START
  18.    )
  19.   )
  20. )
  21. )

  22. :START
  23. SET "HEXE=%HEXE:"=%"

  24. IF NOT EXIST "log.txt" (
  25.   ECHO 【log.txt】is none!
  26.   PAUSE&&EXIT
  27. )


  28. :CCHECK
  29. ECHO.
  30. IF EXIST "!curPath!\tmpchk.txt" (DEL /F /S /Q "!curPath!\tmpchk.txt">NUL)

  31. FOR /F %%A IN ('FINDSTR .* "!curPath!\log.txt"') DO (
  32. CD /D %%A

  33. FOR /R %%i IN (*.c) DO (
  34. "!HEXE!" /h /x"!curPath!\cmd\MakeNoBom.mac" /a"%%i"

  35.   FOR /F "tokens=1* delims=:" %%A IN ('FINDSTR /N .* "%%i"') DO (
  36.    SET "str1=%%B"
  37.    IF NOT "!str1!" EQU "" (
  38.     IF /I "!str1:~0,8!" EQU "!var2!" (
  39.      CALL SET "str2=%%str1:!!var1!!=%%"
  40.      IF NOT "!str1!" EQU "!str2!" (ECHO %%i>>"!curPath!\tmpchk.txt")
  41.     )
  42.    )
  43.   )
  44. )
  45. )

  46. IF EXIST "!curPath!\tmpchk.txt" (
  47. FOR /F %%A IN ('FINDSTR .* "!curPath!\tmpchk.txt"') DO (
  48.   ECHO %%A

  49.   REM C file path and name is written.
  50.   FOR %%i IN ("%%A") DO (
  51.    CALL :SHOW %%i
  52.    SET "cPath=%%~dpi"
  53.   )

  54.   REM rollback at last.
  55.   COPY /Y "%%A" "!curPath!\copy">NUL

  56.   IF EXIST "!curPath!\tmp.c" (DEL /F /S /Q "!curPath!\tmp.c">NUL)

  57.   REM change the path
  58.   FOR /F "tokens=1* delims=:" %%i IN ('FINDSTR /N .* "%%A"') DO (
  59.    SET "str1=%%j"
  60.    IF DEFINED str1 (
  61.     IF /I "!str1:~0,8!" EQU "!var2!" (
  62.      CALL SET "str2=%%str1:!!var1!!=%%"
  63.      IF NOT "!str1!" EQU "!str2!" (CALL SET "str1=%%str1:!var1!=!var3!%%")
  64.      ECHO;!str1!>>"!curPath!\tmp.c"
  65.     ) ELSE (ECHO;%%j>>"!curPath!\tmp.c")
  66.    ) ELSE (ECHO.>>"!curPath!\tmp.c")
  67.   )

  68.   REM cut file
  69.   REN "!curPath!\tmp.c" !cName!
  70.   MOVE /Y "!curPath!\!cName!" !cPath!
  71. )
  72. )


  73. :SHOW
  74. SET cName=%~nx1
复制代码
 楼主| 发表于 2013-12-17 14:12:21 | 显示全部楼层
此帖仅作者可见
发表于 2013-12-17 15:31:34 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2013-12-17 15:37:17 | 显示全部楼层
此帖仅作者可见
发表于 2013-12-17 17:51:45 | 显示全部楼层
此帖仅作者可见
发表于 2013-12-17 19:19:09 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2013-12-18 09:12:42 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2013-12-18 09:13:20 | 显示全部楼层
此帖仅作者可见
 楼主| 发表于 2013-12-18 09:30:49 | 显示全部楼层
此帖仅作者可见
发表于 2013-12-18 10:18:59 | 显示全部楼层
此帖仅作者可见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:51 , Processed in 0.010324 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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