![Board logo](images/default/logo.gif)
标题: [其他] do.bat - 在管道符后面使用 do [打印本页]
作者: tmplinshi 时间: 2012-11-29 02:34 标题: do.bat - 在管道符后面使用 do
本帖最后由 tmplinshi 于 2015-3-19 18:57 编辑
- :: do.bat
-
- @echo off
-
- if "%~1" == "" goto help
- if "%~1" == "/?" goto help
-
- :main
- setlocal
- set args=%*
- if /i "%~1" == "-f" set args=%args:*-f =%
- set "var=%args:"=|%"
- if "%var:~0,1%%var:~-1%" == "||" set "args=%args:~1,-1%"
-
- (
- for /f delims^=^ eol^= %%a in (' findstr .* ') do %args%
- ) || (
- if /i "%~1" == "-f" (
- for /f "tokens=*" %%a in (" ") do %args%
- )
- )
- exit /b
-
- :help
- echo do.bat - 在管道符后面使用 do
- echo,
- echo 用法: ^<命令^> ^| do [-f] ^<命令^>
- echo,
- echo -f 强制执行。(即使 stdin 是空的,也依旧执行)
- echo,
- echo 示例:
- echo,
- echo 1. 查找包含字符串 str 的文件,并移动到文件夹 _dir
- echo findstr /m "str" * ^| do move "%%a" "_dir\"
- echo 2. 如果命令中含有特殊字符,需要用双引号括起来
- echo echo test ^| do "echo %%a & echo END"
- echo 3. -f 参数使用示例
- echo cd . ^| do -f echo "%%a"
- exit /b
复制代码
作者: pkcc110 时间: 2014-9-26 12:18
顶,很不错
作者: ygqiang 时间: 2015-1-9 02:13
tmplinshi 发表于 2012-11-29 02:34 ![](http://www.bathome.net/images/common/back.gif)
版主请教下。
do.bat 具体如何使用?功能是啥?
作者: tmplinshi 时间: 2015-1-9 14:44
回复 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 /? 能看到用法说明。
作者: Linuxer 时间: 2015-3-19 14:43
回复 3# ygqiang
保存代码do.bat放到系统system32目录下。
这功能确实很方便啊。
作者: CrLf 时间: 2015-3-19 16:14
回复 5# Linuxer
昂,冒泡了冒泡了
duang 的就被抓到了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |