3

重複の可能性:
バッチスクリプトを使用してサブフォルダー内のファイルを削除します

サブフォルダ(同じ名前)から.txtファイルを削除する必要があります。私のファイルパスは次のようになります。

d:\ test \ test1 \ archive * .txt d:\ test \ try \ archive * .txt d:\ test \ model \ archive * .txt

上記のパスにある「.txt」ファイルを削除するために「del」コマンドを試しました。しかし、フォルダ「test」には100を超えるフォルダがあります。したがって、すべてのパスに「del」を使用することは非常に困難です。

「アーカイブ」フォルダの親フォルダ名を除いて、すべてのパスですべてが同じままです。したがって、バッチスクリプトを使用してファイルを削除する簡単な方法があるかもしれません。

バッチスクリプトを使用して.txtファイルを削除する簡単な方法があるかどうか、または100個のフォルダーすべてに対して「del」を繰り返す必要があるかどうかを誰かに教えてもらえますか?

4

3 に答える 3

5
del /s *.txt

それが役立つことを願っています.すべての最高の仲間

于 2012-12-10T13:14:14.620 に答える
2

del /s *.txt現在の作業ディレクトリのすべてのサブフォルダーにあるすべての TXT ファイルを削除します。

(ただし、そのコマンドは慎重に使用してください。親ディレクトリが間違っていると、コンピューター上のすべてのテキストファイルが破棄されます:))

于 2012-12-10T13:08:51.573 に答える
0

編集済み

del /s d:\test\archive\*.txt

これにより、すべてのテキストファイルが取得されます

あるいは、

特定のファイルを検索して移動するように、既に作成したスクリプトを変更しました。これは、ファイルを見つけて削除する必要があります。選択画面でどのフォルダに移動するかを選択するだけです。

ただし、使用する前にシステムでこれをテストしてください。

@echo off
Title DeleteFilesInSubfolderList
color 0A
SETLOCAL ENABLEDELAYEDEXPANSION

REM ---------------------------
REM   *** EDIT VARIABLES BELOW ***
REM ---------------------------

set targetFolder=
REM targetFolder is the location you want to delete from    
REM ---------------------------
REM  *** DO NOT EDIT BELOW ***
REM ---------------------------

IF NOT DEFINED targetFolder echo.Please type in the full BASE Symform Offline Folder (I.E. U:\targetFolder)
IF NOT DEFINED targetFolder set /p targetFolder=:
cls
echo.Listing folders for: %targetFolder%\^*
echo.-------------------------------
set Index=1
for /d %%D in (%targetFolder%\*) do (
  set "Subfolders[!Index!]=%%D"
  set /a Index+=1
)
set /a UBound=Index-1
for /l %%i in (1,1,%UBound%) do echo. %%i. !Subfolders[%%i]!

:choiceloop
echo.-------------------------------
set /p Choice=Search for ERRORS in: 
if "%Choice%"=="" goto chioceloop
if %Choice% LSS 1 goto choiceloop
if %Choice% GTR %UBound% goto choiceloop
set Subfolder=!Subfolders[%Choice%]!
goto start

:start
TITLE Delete Text Files - %Subfolder%
IF NOT EXIST %ERRPATH% goto notExist
IF EXIST %ERRPATH% echo.%ERRPATH% Exists - Beginning to test-delete files...
echo.Searching for .txt files...
pushd %ERRPATH%
for /r %%a in (*.txt) do (
echo "%%a" "%Subfolder%\%%~nxa"
)
popd
echo.
echo.
verIFy >nul
echo.Execute^?
choice /C:YNX /N /M "(Y)Yes or (N)No:"
IF '%ERRORLEVEL%'=='1' set question1=Y
IF '%ERRORLEVEL%'=='2' set question1=N
IF /I '%question1%'=='Y' goto execute
IF /I '%question1%'=='N' goto end

:execute
echo.%ERRPATH% Exists - Beginning to delete files...
echo.Searching for .txt files...
pushd %ERRPATH%
for /r %%a in (*.txt) do (
del "%%a" "%Subfolder%\%%~nxa"
)
popd
goto end

:end
echo.
echo.
echo.Finished deleting files from %subfolder%
pause
goto choiceloop
ENDLOCAL
exit


REM Created by Trevor Giannetti
REM An unpublished work
REM (October 2012)

を変更すると

set targetFolder= 

必要なフォルダーに移動すると、フォルダーの入力を求められません。*ベース パスを入力するときは、フォーマットの末尾に「\」が含まれていないことに注意してください。例 d:\test c:\temp

お役に立てれば

于 2012-12-10T13:33:10.730 に答える