标题: [文件操作] [己解决]如何用批处理命令for /R搜索C盘D盘中所有的GHO文件? [打印本页]
作者: batsealine 时间: 2013-10-4 22:00 标题: [己解决]如何用批处理命令for /R搜索C盘D盘中所有的GHO文件?
本帖最后由 batsealine 于 2013-10-7 00:03 编辑
直接上代码,我要的是这个效果- @echo off
- for %%i in (C D) do (
- pushd %%i:\
- for /r %%j in (*.GHO) do echo %%j
- )
- pause
复制代码
有没有人能告诉我不用pushed的话如何解决,为什么下面这个会出错- @echo off
- for %%i in (C D) do (
- for /r %%i:\ %%j in (*.GHO) do echo %%j
- )
- pause
复制代码
是不是要SetLocal EnableDelayedExpansion,该怎么用,请高手详细讲解。
作者: Lumiere 时间: 2013-10-4 22:36
本帖最后由 Lumiere 于 2013-10-7 12:55 编辑
回复 1# batsealine
因为你的嵌套for语句里的第二个for同时出现了%%i和%%j,这样系统无法解释。你可以改成这样。- @echo off
- for %%i in (C D) do (
- cd /d %%i:\
- for /r %%j in (*.GHO) do echo %%j
- )
- 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 (不支持搜索隐藏文件)- @echo off
- for %%a in (c d) do call :Lp %%a
- pause&goto :eof
-
- :Lp
- for /r "%1:\" %%i in (*.gho) do echo,%%i
复制代码
dir 就像这样:- @echo off
- for /f "delims=" %%a in ('dir /a-d/b/s c:\*.gho d:\*.gho') do echo %%a
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |