如何让批处理脚本浏览文件夹?

时间:2013-07-13 10:30:21

标签: batch-file iterator

我有一个脚本,它会一直修改特定文件。

findstr /s /m "BLABLABLA" C:\BLABLABLA\*.BLA > bla.bla
if %errorlevel%=="0" (
    BLABLABLA
)

我知道“Blabla”不是很透明......

如何制作BAT文件。它会找到每个文件扩展名为BLA的文件,其中包含BLABLABLA在每个位置,每个文件夹,每个分区。 Iterating through a folder using batch script它仅适用于1个文件夹。

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

@echo off

setlocal

set DRIVES=C D E F G H I J K L M N O P Q R S T U V W X Y Z

(for %%d in (%DRIVES%) do (
  if exist "%%d:\" (
    pushd "%%d:\"
    for /r %%f in (*.BLA) do (
      findstr /m "BLABLABLA" "%%~f" && (
        BLABLABLA
      )
    )
    popd
  )
)) > bla.bla

更优雅的方法是通过WMI枚举本地驱动器:

@echo off

setlocal

(for /f %%d in (
  'wmic logicaldisk where drivetype^=3 get caption ^| find ":"'
) do (
  pushd "%%d\"
  for /r %%f in (*.BLA) do (
    findstr /m "BLABLABLA" "%%~f" && (
      BLABLABLA
    )
  )
  popd
)) > bla.bla

答案 1 :(得分:2)

  

查找具有BLA扩展名的每个文件

     

包含BLABLABLA

     

在每个[...],每个文件夹,每个分区

尝试:

 for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do findstr /lsimpc:"BLABLABLA" "%%i:\*.BLA" 2>nul
  

在每个地方,[...]

指定:place

答案 2 :(得分:1)

猜猜你在寻找类似的东西:

@echo off

for /r %%f in (*.bla) do (
    for /f %%i in ('findstr /m "BLABLABLA" "%%~f"') do (
        echo do something to "%%~f"
    )
) 

添加驱动器号解析表单Ansgar Wiechers帖子