[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [己解决]如何用批处理命令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,该怎么用,请高手详细讲解。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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
复制代码
Still with wax

TOP

為什麼非要這樣啊   dir /s 不行嗎

TOP

call 传参数

TOP

回复 2# Lumiere


    你的分析有道理,可是你测试没!

TOP

回复 3# terse


    用dir /s怎么支持通配符

TOP

回复 4# apang


    能不能说清楚一点,我的水平不怎么样,最好把代码写出来,也不长

TOP

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
复制代码
1

评分人数

TOP

回复 8# apang


    多谢,回答的得很详细!

TOP

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

回复 5# batsealine

测试过,我的代码确实也有问题,现在改了一下,应该可以了。
Still with wax

TOP

回复 10# Lumiere


    应该还是不可以

TOP

返回列表