0

拡張子の種類が既にあるリストから、名前が同じで拡張子が異なる複数のファイルを削除する必要があります。

ファイル内の文字列を検索し、結果のテキストを作成するバッチ プログラムがあります。

    @echo off
findstr /m "1090 FF" *.info > results.txt
if %errorlevel%==0 (
echo Found! logged files into results.txt
) else (
echo No matches found
)

これにより、拡張子 .info を持つファイルのリストが作成されます。次に、そのリストを取得して、ファイルのリストを含むすべてのファイルを削除する必要がありますが、兄弟ファイルをすべて削除する必要があります。

example:
12345.info (in my list to del)
12345.cpr (need to del)
12345.emf (need to del)
12345.obj (need to del)
12345.timb (need to del)

これを使用してみましたが、.info ファイル拡張子のみが削除されました。

@echo off
REM Delete files/folders specified in a newline delimited txt file list. 

set "default_list_path=C:\Users\%USERNAME%\Desktop\SAD_FF bat\results.txt"

if not "%~2"=="" echo Error: unexpected arguments& exit /b
if not "%~1"=="" ( set "list=%1" ) else (
    set "list=%DEFAULT_LIST_PATH%"
)

if not exist "%LIST:"=%" echo Error: list could not be found& exit /b

set /a delete_counter=0
for /f "delims=" %%I in ('type "%LIST:"=%"') do (
    if exist "%%~fI" (
        set /a delete_counter+=1
        if exist "%%~fI"\* (
            rd /s /q "%%~fI"
        ) else (
            del /q "%%~fI.*"
        )
    ) else (
        echo No such path "%%~I".
    )
)

echo.& echo %DELETE_COUNTER% files or folders were deleted.

後のコードを拡張して、すべての兄弟ファイルを削除できますか?? すべての提案を歓迎します!!

4

1 に答える 1

1

変更してみる

        del /q "%%~fI.*"

        echo del /q "%%~dpnI.*"

必要な DEL コマンドはECHO、テスト目的でのみ使用されます。コマンドが正しいことを確認したら、 に変更ECHO DELDELて実際にファイルを削除します。

于 2016-10-10T14:17:45.883 に答える