[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
好奇怪,为什么要在“正常”的前面加百分号?

TOP

本帖最后由 tmplinshi 于 2011-6-18 20:36 编辑
  1. @echo off
  2. setlocal disabledelayedexpansion
  3. (
  4.     for /f "delims=" %%i in (1.txt) do (
  5.         set var=%%i
  6.         setlocal enabledelayedexpansion
  7.         set var=!var:*\system32\=system32\!
  8.         echo set "var=^!var:!var!=正常^!"
  9.         endlocal
  10.     )
  11. ) >2.txt
  12. endlocal
复制代码

TOP

本帖最后由 tmplinshi 于 2011-6-18 21:57 编辑

13# batpro
  1. @echo off
  2. setlocal disabledelayedexpansion
  3. (
  4.     for /f "tokens=* eol=*" %%i in (1.txt) do (
  5.         for %%j in ("|%%i") do set var=%%~fj
  6.         setlocal enabledelayedexpansion
  7.         set "var=!var:*|=!"
  8.         set var=!var:*\system32\=system32\!
  9.         echo set "var=^!var:!var!=正常^!"
  10.         endlocal
  11.     )
  12. )
  13. endlocal
  14. pause
复制代码
其实把 8 楼代码中的 set var=%%i 改成 set var=%%~fi 就可以了。

但为了防止不含盘符的路径,如 a\a.exe,假设当前路径是 D:\test,那么 %%~fi 的结果会是 D:\test\a\a.exe。上面的代码处理了这个情况。

TOP

返回列表