[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. cd /d "D:\CNC"
  3. for /f "delims=" %%f in (' dir /b *.B3 ') do (
  4.     set .Skip=
  5.     set .Move=
  6.     >"%~nx0.tmp" (
  7.         for /f "usebackq delims=" %%s in ("%%f") do (
  8.             if not defined .Skip (
  9.                 echo,%%s
  10.                 if "%%s"=="(PART RIPCUT)" set /a .Skip = 1, .Move = 1
  11.             ) else (
  12.                 if "%%s"=="(BLOCK)" (
  13.                     set .Skip=
  14.                     echo,%%s
  15.                 )
  16.             )
  17.         )
  18.     )
  19.     if defined .Move move "%~nx0.tmp" "%%f"
  20. )
  21. del "%~nx0.tmp" 2>nul
复制代码
1

评分人数

TOP

本帖最后由 tmplinshi 于 2011-3-24 14:24 编辑

7# zhen

Unix for Windows 批处理命令行工具集
http://bathome.net/thread-1114-1-1.html

TOP

本帖最后由 tmplinshi 于 2011-3-24 14:42 编辑

碰到 (PART RIPCUT) 后就定义 .Skip 变量。存在 .Skip 变量的时候,碰到的行会略过。直到碰到 (BLOCK),再把 .Skip 变量清除。

if defined 和 if not defined 就是判断变量有没有定义。

没有出现 (PART RIPCUT) 的时候,文件不会改动,就不执行多余的 move 操作。用 .Move 变量来判断文件有没有改动。
最后的 del 命令也是在没有执行 move 的情况下,把临时文件删除。
现在你说还有其他的修改,.Move 变量就没有必要了。
1

评分人数

    • zhen: 对我帮助很大技术 + 1

TOP

返回列表