Board logo

标题: [文件操作] [己解决]如何用批处理命令for /R搜索C盘D盘中所有的GHO文件? [打印本页]

作者: batsealine    时间: 2013-10-4 22:00     标题: [己解决]如何用批处理命令for /R搜索C盘D盘中所有的GHO文件?

本帖最后由 batsealine 于 2013-10-7 00:03 编辑

直接上代码,我要的是这个效果
  1. @echo off
  2. for %%i in (C D) do (
  3. pushd %%i:\
  4. for /r %%j in (*.GHO) do echo %%j
  5. )
  6. pause
复制代码
有没有人能告诉我不用pushed的话如何解决,为什么下面这个会出错
  1. @echo off
  2. for %%i in (C D) do (
  3. for /r %%i:\ %%j in (*.GHO) do echo %%j
  4. )
  5. pause
复制代码
是不是要SetLocal EnableDelayedExpansion,该怎么用,请高手详细讲解。
作者: Lumiere    时间: 2013-10-4 22:36

本帖最后由 Lumiere 于 2013-10-7 12:55 编辑

回复 1# batsealine

因为你的嵌套for语句里的第二个for同时出现了%%i和%%j,这样系统无法解释。你可以改成这样。
  1. @echo off
  2. for %%i in (C D) do (
  3. cd /d %%i:\
  4. for /r %%j in (*.GHO) do echo %%j
  5. )
  6. pause
复制代码

作者: terse    时间: 2013-10-4 23:15

為什麼非要這樣啊   dir /s 不行嗎
作者: apang    时间: 2013-10-4 23:32

call 传参数
作者: batsealine    时间: 2013-10-5 22:25

回复 2# Lumiere


    你的分析有道理,可是你测试没!
作者: batsealine    时间: 2013-10-5 22:27

回复 3# terse


    用dir /s怎么支持通配符
作者: batsealine    时间: 2013-10-5 22:29

回复 4# apang


    能不能说清楚一点,我的水平不怎么样,最好把代码写出来,也不长
作者: apang    时间: 2013-10-6 09:05

call (不支持搜索隐藏文件)
  1. @echo off
  2. for %%a in (c d) do call :Lp %%a
  3. pause&goto :eof
  4. :Lp
  5. for /r "%1:\" %%i in (*.gho) do echo,%%i
复制代码
dir 就像这样:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/b/s c:\*.gho d:\*.gho') do echo %%a
  3. pause
复制代码

作者: batsealine    时间: 2013-10-7 00:02

回复 8# apang


    多谢,回答的得很详细!
作者: Lumiere    时间: 2013-10-7 11:57

本帖最后由 Lumiere 于 2013-10-7 12:56 编辑

回复 5# batsealine

测试过,我的代码确实也有问题,现在改了一下,应该可以了。
作者: DAIC    时间: 2013-10-7 16:55

回复 10# Lumiere


    应该还是不可以




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2