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

[其他] do.bat - 在管道符后面使用 do

[复制链接]
发表于 2012-11-29 02:34:57 | 显示全部楼层 |阅读模式
本帖最后由 tmplinshi 于 2015-3-19 18:57 编辑
  1. :: do.bat

  2. @echo off

  3. if "%~1" == ""   goto help
  4. if "%~1" == "/?" goto help

  5. :main
  6.         setlocal
  7.         set args=%*
  8.         if /i "%~1" == "-f" set args=%args:*-f =%
  9.         set "var=%args:"=|%"
  10.         if "%var:~0,1%%var:~-1%" == "||" set "args=%args:~1,-1%"
  11.        
  12.         (
  13.             for /f delims^=^ eol^= %%a in (' findstr .* ') do %args%
  14.         ) || (
  15.             if /i "%~1" == "-f" (
  16.                 for /f "tokens=*" %%a in (" ") do %args%
  17.             )
  18.         )
  19. exit /b

  20. :help
  21.         echo do.bat - 在管道符后面使用 do
  22.         echo,
  23.         echo 用法: ^<命令^> ^| do [-f] ^<命令^>
  24.         echo,
  25.         echo     -f    强制执行。(即使 stdin 是空的,也依旧执行)
  26.         echo,
  27.         echo 示例:
  28.         echo,
  29.         echo     1. 查找包含字符串 str 的文件,并移动到文件夹 _dir
  30.         echo          findstr /m "str" * ^| do move "%%a" "_dir"
  31.         echo     2. 如果命令中含有特殊字符,需要用双引号括起来
  32.         echo          echo test ^| do "echo %%a & echo END"
  33.         echo     3. -f 参数使用示例
  34.         echo          cd . ^| do -f echo "%%a"
  35. exit /b
复制代码

评分

参与人数 1技术 +1 收起 理由
plp626 + 1 好方法!

查看全部评分

发表于 2014-9-26 12:18:08 | 显示全部楼层
顶,很不错
发表于 2015-1-9 02:13:49 | 显示全部楼层
tmplinshi 发表于 2012-11-29 02:34



    版主请教下。

do.bat  具体如何使用?功能是啥?
 楼主| 发表于 2015-1-9 14:44:05 | 显示全部楼层
回复 3# ygqiang


    do.bat 之所以产生,是因为有时候我需要在命令提示符窗口输入 for 命令,而输入长长的 for ... 是件非常麻烦的事。

比较一下这两个命令:
C:\>for /f %a in ('dir /a:d /b /s *1x1') do ren "%a" "img"
C:\>dir /a:d /b /s *1x1 | do ren "%a" "img"

用 do.bat 是不是方便很多呢!

执行 do /? 能看到用法说明。
发表于 2015-3-19 14:43:43 | 显示全部楼层
回复 3# ygqiang


    保存代码do.bat放到系统system32目录下。

这功能确实很方便啊。
发表于 2015-3-19 16:14:55 | 显示全部楼层
回复 5# Linuxer


    昂,冒泡了冒泡了
    duang 的就被抓到了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 00:07 , Processed in 0.020657 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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