无忧启动论坛

标题: 批处理for求助 [打印本页]

作者: 2010lhy6456210    时间: 2011-2-15 19:32
标题: 批处理for求助
@echo off
for /r c:\ %%i in (*.gho) do echo %%i
这个FOR命令,现在只搜索C盘,我想实现的是,C D E都要搜索,研究了一天不知道怎么写???
作者: haiou327    时间: 2011-2-15 21:53
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
for %%d in (c d e) do (
   set Drv=%%d:
      for /f "tokens=*" %%i in ('dir !drv!\*.gho /s/b/a-d') do (
         echo %%i
              ))
pause
作者: x9tian    时间: 2011-2-16 17:25
for  /f "usebakq tokens=*"  %%i  in (
     `dir /a-d/b/s  c:\*.gho   d:\*.gho  e:\*.gho`
) do (
       set /a n+=1
       call  set "#%%n%%=%%i"
)
echo.  您所收索的盘符,存在以下GHO文件 格式为  " 变量= XXX.gho
set #>"%~dp0GHO.txt&&notepad  "%~dp0GHO.txt"



下面这个不给GHO文件赋值
for  /f "usebakq tokens=*"  %%i  in (
     `dir /a-d/b/s  c:\*.gho   d:\*.gho  e:\*.gho`
) do (
      cd.>"%~dp0GHO.txt
      echo.%%i>"%~dp0GHO.txt   
)
echo.  您所收索的盘符,存在以下GHO文件
notepad  "%~dp0GHO.txt"





楼上,dir  支持N文件搜索的   一个for 就行了

[ 本帖最后由 x9tian 于 2011-2-16 17:34 编辑 ]
作者: 2010lhy6456210    时间: 2011-2-18 00:14
标题: 回复 #3 x9tian 的帖子
谢谢!太强大了,但是没有完全理解,,
作者: x9tian    时间: 2011-2-20 09:56
:: for 语句,
     usebakq 参数,是防止,处理文件夹带空格的目录,加了usebkq  参数,命令语句由单引号改成反单引号。 (其实不加usebakq 参数也没事,因为,里面的DIR命令是全盘搜不会处理空格文件夹出问题)
      tokens=*   把 for 语句里面,第一个括号里面的命令和命令运行结果, 都把一整行看成一小节,这样数据里面出现空格,分号什么的就不怕了

for  /f "usebakq tokens=*"  %%i  in (
     `dir /a-d/b/s  c:\*.gho   d:\*.gho  e:\*.gho`
) do (
      :: 设定,N的值,每持行一次加一
       set /a n+=1
      ::call  命令开启变量延迟  使用call 命令里需要延迟的变量要 多加对百分号 如%n% 变成了%%n%    set “#变量=数值或变量” 格式 是为了后面来取后面提取数据方便 (请注意 set 命令中用到了一对双引号,这是为了防止数值中出现空格号必免不同环境下出现BUG)
       call  set "#%%n%%=%%i"
)
echo.  您所收索的盘符,存在以下GHO文件 格式为  " 变量= XXX.gho
::例出所有 变量中含# 的变量和它的赋值
set #>"%~dp0GHO.txt&&notepad  "%~dp0GHO.txt"




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3