0

特定のファイルを常に変更するスクリプトがあります。

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

「Blabla」があまり透明でないことは知っています...

BATファイルの作り方。これにより、すべての場所、すべてのフォルダー、すべてのパーティションに BLA含まれる拡張子を持つすべてのファイルが検索されます。バッチスクリプトを使用してフォルダーを反復処理する1つのフォルダーでのみ機能します。BLABLABLA

4

3 に答える 3

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
于 2013-07-13T11:20:22.107 に答える
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 の投稿からドライブ文字の解決方法を追加します。

于 2013-07-13T11:46:14.120 に答える