Windowsのコマンドプロンプトで特定のディレクトリにファイル/サブフォルダを削除する方法 -- windows フィールド と batch-file フィールド と file-io フィールド と cmd フィールド と directory フィールド 関連 問題

How to delete files/subfolders in a specific directory at the command prompt in Windows












325
vote

問題

日本語

SONE、 %pathtofolder% と呼ばれる変数があり、それがクリアされているため、フォルダのフルパスです。

このディレクトリのすべてのファイルとサブフォルダを削除したいが、ディレクトリ自体は削除したい。

しかし、「このファイル/フォルダはすでに使用されている」ようなエラーがあるかもしれません...それが起こると、そのファイル/フォルダを続けてスキップするだけです。

これにはいくつかのコマンドがありますか?

英語

Say, there is a variable called %pathtofolder%, as it makes it clear it is a full path of a folder.

I want to delete every single file and subfolder in this directory, but not the directory itself.

But, there might be an error like 'this file/folder is already in use'... when that happens, it should just continue and skip that file/folder.

Is there some command for this?

</div
              
   
   

回答リスト

267
 
vote
vote
ベストアンサー
 

このシェルスクリプトを使用して、<コード> C:Temp / a/stackoverflow.com/a/1502935/4352889"> source をクリーンアップできます。 :

<事前> <コード> del /q "C:Temp*" FOR /D %%p IN ("C:Temp*.*") DO rmdir "%%p" /s /q

上記のコマンドを含むバッチファイル(Delete.bat)を作成します。 delete.batファイルが配置されている場所に移動してからコマンドを実行します.delete.bat

 

You can use this shell script to clean up the folder and files within C:Temp source:

del /q "C:Temp*" FOR /D %%p IN ("C:Temp*.*") DO rmdir "%%p" /s /q 

Create a batch file (say, delete.bat) containing the above command. Go to the location where the delete.bat file is located and then run the command: delete.bat

</div
 
 
         
         
360
 
vote

<コード> rmdir は常に仕事のためのお気に入りのコマンドサブフォルダを使って巨大なファイルやフォルダを削除するのに役立ちます。バックアップが作成されないため、このコマンドを実行する前にファイルを安全にコピーしたことを確認してください。

<事前> <コード> RMDIR "FOLDERNAME" /S /Q

これはフォルダとすべてのファイルとサブフォルダを静かに削除します。

 

rmdir is my all time favorite command for the job. It works for deleting huge files and folders with subfolders. A backup is not created, so make sure that you have copied your files safely before running this command.

RMDIR "FOLDERNAME" /S /Q 

This silently removes the folder and all files and subfolders.

</div
 
 
         
         
87
 
vote

最も簡単な解決策は、ディレクトリ全体を

で削除していることを考えることができます <事前> <コード> RD /S /Q folderPath

その後、このディレクトリをもう一度作成します。

<事前> <コード> MD folderPath
 

The simplest solution I can think of is removing the whole directory with

RD /S /Q folderPath 

Then creating this directory again:

MD folderPath 
</div
 
 
         
         
52
 
vote

フォルダとファイルを削除し、フォルダの後ろを残します。

<事前> <コード> pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)
 

This will remove the folders and files and leave the folder behind.

pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd) 
</div
 
 
         
         
39
 
vote
<事前> <コード> @ECHO OFF SET THEDIR=path-to-folder Echo Deleting all files from %THEDIR% DEL "%THEDIR%*" /F /Q /A Echo Deleting all folders from %THEDIR% FOR /F "eol=| delims=" %%I in ('dir "%THEDIR%*" /AD /B 2^>nul') do rd /Q /S "%THEDIR%%%I" @ECHO Folder deleted. EXIT

...指定されたディレクトリの下にあるすべてのファイルとフォルダを削除しますが、ディレクトリ自体は削除しません。

 
@ECHO OFF  SET THEDIR=path-to-folder  Echo Deleting all files from %THEDIR% DEL "%THEDIR%*" /F /Q /A  Echo Deleting all folders from %THEDIR% FOR /F "eol=| delims=" %%I in ('dir "%THEDIR%*" /AD /B 2^>nul') do rd /Q /S "%THEDIR%%%I" @ECHO Folder deleted.  EXIT 

...deletes all files and folders underneath the given directory, but not the directory itself.

</div
 
 
         
         
7
 
vote

2018-06-01で投稿された答えのどれも、 Foxidrive は、 %PathToFolder% のすべてのファイルとすべてのフォルダ/ディレクトリを実際に削除します。それが、フォルダのすべてのファイルとサブフォルダを削除するための非常に単純なシングルコマンドラインと1回の答えを投稿して、<で2018-06-01に投稿された他のすべての回答を説明するためのより複雑なソリューションを含むバッチファイルを説明します。 rd の強い> del とフォルダのクリーンアップに失敗しました。


もちろんバッチファイルでもコウモリを使用できる単一のコマンドラインソリューション:

<事前> <コード> pushd "%PathToFolder%" 2>nul && ( rd /Q /S "%PathToFolder%" 2>nul & popd )

このコマンドラインには、もう1つ後に実行された3つのコマンドが含まれています。

最初のコマンド pushd は、現在のディレクトリパスをスタックでプッシュし、次に %PathToFolder% を実行するための現在のディレクトリを実行します。

これは、デフォルトではデフォルトで有効になっているため、デフォルトでのパスこの場合、 pushd は、その指定されたネットワークリソースを指す一時的なドライブ文字を作成し、新しく定義されたドライブ文字を使用して現在のドライブとディレクトリを変更します。

pushd 指定されたディレクトリがまったく存在しない場合は、 stderr を処理するためのエラーメッセージの出力を出力します。

システムが指定されたパスを見つけることができません。

このエラーメッセージは、 &&0 にリダイレクトすることで抑制されます。 nul

次のコマンド rd は、現在のコマンドプロセスの現在のディレクトリを指定されたディレクトリに変更した場合にのみ実行され、指定されたディレクトリがまったく存在します。

コマンド rd オプション &&1 および &&2 は、すべてのサブディレクトリを持つディレクトリ静かにを削除します。 指定されたディレクトリに隠し属性を持つファイルやフォルダが含まれている場合、または読み取り専用の属性セットが含まれていても。システム属性は、ファイルまたはフォルダの削除を防ぐことはありません。

削除されていない:

  1. 実行中のプロセスの現在のディレクトリとして使用されるフォルダ。実行中のプロセスの現在のディレクトリとしてフォルダが使用されている場合、フォルダ全体のフォルダツリーは削除できません。

  2. ファイルアクセス権を持つ実行中のプロセスによって現在開いているファイルは、実行中のアプリケーション/プロセスによって開かれているときにファイルの削除を防ぐためにファイルを開きます。このような開いたファイルは、オープンされたファイルへのフォルダツリー全体の削除も防止されます。

  3. 現在のユーザが必要なファイル/フォルダを削除するための必須(NTFS)権限を持っていないファイル/フォルダ。

  4. フォルダを削除しない最初の理由は、このコマンドラインで指定されたフォルダのすべてのファイルとサブフォルダを削除するが、フォルダ自体では使用されません。フォルダは、フォルダ自体の削除を妨げるコマンドプロセスを実行するための現在のディレクトリに一時的に行われます。もちろん、これはコマンド rd によってエラーメッセージを出力します。

    プロセスは別のプロセスで使用されているため、ファイルにアクセスできません。

    file は、このような実際のように、フォルダが別のプロセスで使用されていると同じように、コマンド rd 。まあ、実際にはフォルダはこのエラーメッセージを説明するファイル属性ディレクトリを含む特別なファイルをファイルシステム用です。しかし、私はファイルシステム管理に深すぎるつもりはありません。

    このエラーメッセージは、上記の3つの理由で発生する可能性がある他のすべてのエラーメッセージと同様に、 &&3 から 99887776613 にリダイレクトすることで抑制されます。 nul

    第3のコマンド、 popd は、コマンド rd の終了値とは無関係に実行されます。

    popd は、スタックから pushd でプッシュされたディレクトリパスをポップし、コマンドプロセスを実行するための現在のディレクトリをこのディレクトリに変更します。これは、初期現在のディレクトリを復元します。 popd UNCフォルダパスの場合、 pushd によって作成された一時ドライブ文字を削除します。

    注: popd 初期の現在のディレクトリが存在していた場合の初期的なディレクトリの復元に失敗することは、もう存在しないディレクトリのサブディレクトリであるためです。この特別なケースでは、<コード> &&4 は現在のディレクトリのままです。そのため、<コード> &&5 のサブディレクトリからではなく、コマンドラインを実行することをお勧めします。

    もう1つ興味深い事実: ローカルディレクトリを共有することで、COMMANT LANEをSHAR NAME &&7 を使用してUNCパスを使用してコマンドラインを試してみました。<コード> &&8 環境変数<コード> Code> &&9 コマンドラインを実行している現在のディレクトリが、UNCパスを使用してアクセスされた共有ローカルフォルダのサブディレクトリ、つまり RMDIR0 、<コード> Remove-Item c:scripts* -recurse 621 rd によって削除され、次の popd 998877622 を再び黙示的に失敗し、 998876623 の残りのディレクトリを再び演奏します。実行中のコマンドプロセスの現在のディレクトリとして。そのため、非常に特別な場合、一時的なドライブ文字は、現在のディレクトリが RMDIR4 が本当に存在するローカルディレクトリに変更されるまで残っています。残念ながら、 popd は、初期の現在のディレクトリの復元に失敗した場合、 popd の終了コードを使用してこの非常に特別なエラー状態を検出できない場合は、値が大きくなりません。 。ただし、UNCパスが通常ローカルファイルやフォルダにアクセスするために使用されていないため、これまでにこの非常に特別なエラーの場合には誰も実行することはできません。

    使用されたコマンドをさらに良く理解するには、コマンドプロンプトウィンドウを開き、次のコマンドを実行し、各コマンドに表示されているヘルプを非常に慎重に読みます。

    • <コード> RMDIR5
    • <コード> RMDIR6
    • <コード> RMDIR7

    Windowsバッチファイルを使用した複数のコマンドを持つ単一の行 RMDIR8 および<コード> RMDIR9 ここで使用しました。


    次に、 CD0 rd <の場合、コマンド del を使用してバッチファイルソリューションを調べてください。 / Strong> <コード> CD1 のサブフォルダを削除するには。

    <事前> <コード> CD2

    バッチファイルまず、環境変数 CD3 が二重引用符なしでフォルダパスで実際に定義されていることを確認し、最後にバックスラッシュなしで定義されています。 最後のバックスラッシュは問題にならないでしょうが、<コード> CD4 の値の値のためにフォルダパス内の二重引用符が問題になる可能性があります。 バッチファイルの実行中にER文字列

    重要な2行です:

    <事前> <コード> CD5

    コマンド del は、指定されたディレクトリ内のすべてのファイルを削除するために使用されます。

    • オプション CD6 は、 del がオプション CD7 を使用せずに無視するhiddent属性を含むすべてのすべてのファイルを処理するために必要です。< / li>
    • 読み取り専用属性セットを使用してファイルを削除するには、オプション<コード> CD8 が必要です。
    • オプション CD9 は、複数のファイルが本当に削除されるべきかどうかをユーザーに促すことなく、複数のファイルを削除する必要があります。
    • <コード> CD [Your_Folder] && RMDIR /S /Q . 0 stdout nul に書き込んだファイル名の出力をリダイレクトするには、そのうち削除できません。ファイルの開いているか、ユーザーはファイルを削除する権限がありません。
    • CD [Your_Folder] && RMDIR /S /Q . 1 は、ハンドル stderr からdevice nul に削除できない各ファイルのエラーメッセージ出力をリダイレクトするために必要です。< / li>

    指定されたディレクトリ内のすべてのサブディレクトリを削除するために、のコマンド rd が使用されます。しかし、 CD [Your_Folder] && RMDIR /S /Q . 2 for のために使用されていないは、隠し属性セットを持つこの場合はサブディレクトリでは無視されています。そのため、<コード> CD [Your_Folder] && RMDIR /S /Q . 4 <コード> CD [Your_Folder] && RMDIR /S /Q . 4 :

    の背景で開始された別のコマンドプロセスで、次のコマンドラインを実行するために<コード> Remove-Item c:scripts* -recurse 43 が使用されます。 <事前> <コード> CD [Your_Folder] && RMDIR /S /Q . 5

    dir> dir CD [Your_Folder] && RMDIR /S /Q . 6 属性 998876647 のディレクトリエントリ、つまり、指定されたディレクトリ内のすべてのサブディレクトリの名前、つまり依存しているすべてのサブディレクトリの名前。パスなしの隠し属性のような他の属性。 998876648 は、 stderr stderr からdevice nul dir で出力されたエラーメッセージをリダイレクトするために使用されます。

    リダイレクト演算子<コード> は、のキャレット文字でエスケープする必要があります。コマンドラインは、リテラル文字として解釈されます。 Windowsコマンドインタプリタがこのコマンドラインを処理する前に、埋め込み RD /S /Q C:/folder_path/here 1 コマンドラインを code>コマンドラインを実行する前に、 code>コマンドラインを実行します。

    for は、経路なしでサブディレクトリの名前であるスタートコマンドプロセスの stdout に書き込まれたキャプチャ出力をプロセスし、二重引用符で囲まれていない。 オプション 998876652 は、オプション Remove-Item c:scripts* -recurse 53 を使用して、ここで発生しない空の行を無視します。空の行を出力しません。

    for は、デフォルトの行文字の最後のセミコロンで始まる行も無視します。 ディレクトリ名はセミコロンで始めることができます。 そのため、 RD /S /Q C:/folder_path/here 4 は、ディレクトリまたはファイルがその名前に持つことができる行末文字として垂直バー文字を定義するために使用されます。

    for は、区切り文字として空間と水平タブを使用して、ラインを部分文字列に分割し、指定されたループ変数 RD /S /Q C:/folder_path/here 5 に最初のスペース/タブ区切り文字列のみを割り当てます。 この分割動作は、ディレクトリ名が1つ以上のスペースを含めることができるため、ここでは必要ありません。 したがって、 RD /S /Q C:/folder_path/here 6 は、ライン分割動作を無効にし、ループ変数に割り当てられた 998に割り当てられる区切り文字の空のリストを定義するために使用されます。 776657 、常に完全なディレクトリ名。

    コマンド for は、 rd コマンドラインのフォルダパスのパスなしで、各ディレクトリ名のコマンド rd を実行します。 サブフォルダ名と連結されているものをもう一度指定する必要があります。

    使用したコマンドを理解するために、それらの作業方法、コマンドプロンプトウィンドウを開き、次のコマンドを実行し、各コマンドに対して非常に慎重に表示されたすべてのヘルプページを読み込みます。

    • <コード> RD /S /Q C:/folder_path/here 8
    • <コード> RD /S /Q C:/folder_path/here 9
    • <コード> Remove-Item c:scripts* -recurse 0
    • <コード> Remove-Item c:scripts* -recurse 1
    • <コード> Remove-Item c:scripts* -recurse 2
    • <コード> Remove-Item c:scripts* -recurse 3
    • <コード> Remove-Item c:scripts* -recurse 4
    • <コード> Remove-Item c:scripts* -recurse 5
    • <コード> Remove-Item c:scripts* -recurse 6
    • <コード> Remove-Item c:scripts* -recurse 7
    • <コード> Remove-Item c:scripts* -recurse 8

 

None of the answers as posted on 2018-06-01, with the exception of the single command line posted by foxidrive, really deletes all files and all folders/directories in %PathToFolder%. That's the reason for posting one more answer with a very simple single command line to delete all files and subfolders of a folder as well as a batch file with a more complex solution explaining why all other answers as posted on 2018-06-01 using DEL and FOR with RD failed to clean up a folder completely.


The simple single command line solution which of course can be also used in a batch file:

pushd "%PathToFolder%" 2>nul && ( rd /Q /S "%PathToFolder%" 2>nul & popd ) 

This command line contains three commands executed one after the other.

The first command PUSHD pushes current directory path on stack and next makes %PathToFolder% the current directory for running command process.

This works also for UNC paths by default because of command extensions are enabled by default and in this case PUSHD creates a temporary drive letter that points to that specified network resource and then changes the current drive and directory, using the newly defined drive letter.

PUSHD outputs following error message to handle STDERR if the specified directory does not exist at all:

The system cannot find the path specified.

This error message is suppressed by redirecting it with 2>nul to device NUL.

The next command RD is executed only if changing current directory for current command process to specified directory was successful, i.e. the specified directory exists at all.

The command RD with the options /Q and /S removes a directory quietly with all subdirectories even if the specified directory contains files or folders with hidden attribute or with read-only attribute set. The system attribute does never prevent deletion of a file or folder.

Not deleted are:

  1. Folders used as the current directory for any running process. The entire folder tree to such a folder cannot be deleted if a folder is used as the current directory for any running process.

  2. Files currently opened by any running process with file access permissions set on file open to prevent deletion of the file while opened by the running application/process. Such an opened file prevents also the deletion of entire folder tree to the opened file.

  3. Files/folders on which the current user has not the required (NTFS) permissions to delete the file/folder which prevents also the deletion of the folder tree to this file/folder.

The first reason for not deleting a folder is used by this command line to delete all files and subfolders of the specified folder, but not the folder itself. The folder is made temporarily the current directory for running command process which prevents the deletion of the folder itself. Of course this results in output of an error message by command RD:

The process cannot access the file because it is being used by another process.

File is the wrong term here as in reality the folder is being used by another process, the current command process which executed command RD. Well, in reality a folder is for the file system a special file with file attribute directory which explains this error message. But I don't want to go too deep into file system management.

This error message, like all other error messages, which could occur because of the three reasons written above, is suppressed by redirecting it with 2>nul from handle STDERR to device NUL.

The third command, POPD, is executed independently of the exit value of command RD.

POPD pops the directory path pushed by PUSHD from the stack and changes the current directory for running the command process to this directory, i.e. restores the initial current directory. POPD deletes the temporary drive letter created by PUSHD in case of a UNC folder path.

Note: POPD can silently fail to restore the initial current directory in case of the initial current directory was a subdirectory of the directory to clean which does not exist anymore. In this special case %PathToFolder% remains the current directory. So it is advisable to run the command line above not from a subdirectory of %PathToFolder%.

One more interesting fact: I tried the command line also using a UNC path by sharing local directory C:Temp with share name Temp and using UNC path \%COMPUTERNAME%TempCleanTest assigned to environment variable PathToFolder on Windows 7. If the current directory on running the command line is a subdirectory of a shared local folder accessed using UNC path, i.e. C:TempCleanTestSubfolder1, Subfolder1 is deleted by RD, and next POPD fails silently in making C:TempCleanTestSubfolder1 again the current directory resulting in Z:CleanTest remaining as the current directory for the running command process. So in this very, very special case the temporary drive letter remains until the current directory is changed for example with cd /D %SystemRoot% to a local directory really existing. Unfortunately POPD does not exit with a value greater 0 if it fails to restore the initial current directory making it impossible to detect this very special error condition using just the exit code of POPD. However, it can be supposed that nobody ever runs into this very special error case as UNC paths are usually not used for accessing local files and folders.

For understanding the used commands even better, open a command prompt window, execute there the following commands, and read the help displayed for each command very carefully.

  • pushd /?
  • popd /?
  • rd /?

Single line with multiple commands using Windows batch file explains the operators && and & used here.


Next let us look on the batch file solution using the command DEL to delete files in %PathToFolder% and FOR and RD to delete the subfolders in %PathToFolder%.

@echo off setlocal EnableExtensions DisableDelayedExpansion  rem Clean the folder for temporary files if environment variable rem PathToFolder is not defined already outside this batch file. if not defined PathToFolder set "PathToFolder=%TEMP%"  rem Remove all double quotes from folder path. set "PathToFolder=%PathToFolder:"=%"  rem Did the folder path consist only of double quotes? if not defined PathToFolder goto EndCleanFolder  rem Remove a backslash at end of folder path. if "%PathToFolder:~-1%" == "" set "PathToFolder=%PathToFolder:~0,-1%"  rem Did the folder path consist only of a backslash (with one or more double quotes)? if not defined PathToFolder goto EndCleanFolder  rem Delete all files in specified folder including files with hidden rem or read-only attribute set, except the files currently opened by rem a running process which prevents deletion of the file while being rem opened by the application, or on which the current user has not rem the required permissions to delete the file. del /A /F /Q "%PathToFolder%*" >nul 2>nul  rem Delete all subfolders in specified folder including those with hidden rem attribute set recursive with all files and subfolders, except folders rem being the current directory of any running process which prevents the rem deletion of the folder and all folders above, folders containing a file rem opened by the application which prevents deletion of the file and the rem entire folder structure to this file, or on which the current user has rem not the required permissions to delete a folder or file in folder tree rem to delete. for /F "eol=| delims=" %%I in ('dir "%PathToFolder%*" /AD /B 2^>nul') do rd /Q /S "%PathToFolder%%%I" 2>nul  :EndCleanFolder endlocal 

The batch file first makes sure that environment variable PathToFolder is really defined with a folder path without double quotes and without a backslash at the end. The backslash at the end would not be a problem, but double quotes in a folder path could be problematic because of the value of PathToFolder is concatenated with other strings during batch file execution.

Important are the two lines:

del /A /F /Q "%PathToFolder%*" >nul 2>nul for /F "eol=| delims=" %%I in ('dir "%PathToFolder%*" /AD /B 2^>nul') do rd /Q /S "%PathToFolder%%%I" 2>nul 

The command DEL is used to delete all files in the specified directory.

  • The option /A is necessary to process really all files including files with the hidden attribute which DEL would ignore without using option /A.
  • The option /F is necessary to force deletion of files with the read-only attribute set.
  • The option /Q is necessary to run a quiet deletion of multiple files without prompting the user if multiple files should be really deleted.
  • >nul is necessary to redirect the output of the file names written to handle STDOUT to device NUL of which can't be deleted because of a file is currently opened or user has no permission to delete the file.
  • 2>nul is necessary to redirect the error message output for each file which can't be deleted from handle STDERR to device NUL.

The commands FOR and RD are used to remove all subdirectories in specified directory. But for /D is not used because of FOR is ignoring in this case subdirectories with the hidden attribute set. For that reason for /F is used to run the following command line in a separate command process started in the background with %ComSpec% /c:

dir "%PathToFolder%*" /AD /B 2>nul 

DIR outputs in bare format because of /B the directory entries with attribute D, i.e. the names of all subdirectories in specified directory independent on other attributes like the hidden attribute without a path. 2>nul is used to redirect the error message output by DIR on no directory found from handle STDERR to device NUL.

The redirection operator > must be escaped with the caret character, ^, on the FOR command line to be interpreted as a literal character when the Windows command interpreter processes this command line before executing the command FOR which executes the embedded dir command line in a separate command process started in the background.

FOR processes the captured output written to handle STDOUT of a started command process which are the names of the subdirectories without path and never enclosed in double quotes.

FOR with option /F ignores empty lines which don't occur here as DIR with option /B does not output empty lines.

FOR would also ignore lines starting with a semicolon which is the default end of line character. A directory name can start with a semicolon. For that reason eol=| is used to define the vertical bar character as the end-of-line character which no directory or file can have in its name.

FOR would split up the line into substrings using space and horizontal tab as delimiters and would assign only the first space/tab delimited string to specified loop variable I. This splitting behavior is not wanted here because of a directory name can contain one or more spaces. Therefore delims= is used to define an empty list of delimiters to disable the line splitting behavior and get assigned to the loop variable, I, always the complete directory name.

Command FOR runs the command RD for each directory name without a path which is the reason why on the RD command line the folder path must be specified once again which is concatenated with the subfolder name.

For understanding the used commands and how they work, open a command prompt window, execute there the following commands, and read entirely all help pages displayed for each command very carefully.

  • del /?
  • dir /?
  • echo /?
  • endlocal /?
  • for /?
  • goto /?
  • if /?
  • rd /?
  • rem /?
  • set /?
  • setlocal /?
</div
 
 
30
 
vote
<事前> <コード> CD [Your_Folder] RMDIR /S /Q .

エラーメッセージを入手するには、rmdirコマンドが現在のフォルダにアクセスできないことを伝えます。これにより削除できません。

更新

この便利なコメント( moritzの両方)にあります。を追加することができます。 <コード> CD コマンドが失敗した場合、<コード> RMDIR の間のは実行されません(例:Mistyped Directory Name):

<事前> <コード> CD [Your_Folder] && RMDIR /S /Q . Windowsコマンドラインリファレンス:

/ s:ディレクトリツリー(指定されたディレクトリとそのすべてのもの)を削除します すべてのファイルを含むサブディレクトリ。

/ q:クワイエットモードを指定します。確認のために迅速に確認されません ディレクトリツリーを削除します。 (/ qは/ sの場合にのみ機能することに注意してください。 指定した。)

 
CD [Your_Folder] RMDIR /S /Q . 

You'll get an error message, tells you that the RMDIR command can't access the current folder, thus it can't delete it.

Update:

From this useful comment (thanks to Moritz Both), you may add && between, so RMDIR won't run if the CD command fails (e.g. mistyped directory name):

CD [Your_Folder] && RMDIR /S /Q . 

From Windows Command-Line Reference:

/S: Deletes a directory tree (the specified directory and all its subdirectories, including all files).

/Q: Specifies quiet mode. Does not prompt for confirmation when deleting a directory tree. (Note that /q works only if /s is specified.)

</div
 
 
         
         
9
 
vote

RDはディレクトリの削除を表します。

/ S:すべてのファイルとサブフォルダを削除する フォルダ自体に加えて。 これを使用してフォルダツリー全体を削除します。

/ Q:静か - Yn確認

を表示しない

例:

<事前> <コード> RD /S /Q C:/folder_path/here
 

RD stands for REMOVE Directory.

/S : Delete all files and subfolders in addition to the folder itself. Use this to remove an entire folder tree.

/Q : Quiet - do not display YN confirmation

Example :

RD /S /Q C:/folder_path/here 
</div
 
 
     
     
9
 
vote

PowerShell

を使う <事前> <コード> Remove-Item c:scripts* -recurse

フォルダ自体ではなく、フォルダの内容を削除します。

 

I use Powershell

Remove-Item c:scripts* -recurse 

It will remove the contents of the folder, not the folder itself.

</div
 
 
     
     
6
 
vote

notepad テキスト文書を作成し、これをコピー/貼り付ける/貼り付けます。

<事前> <コード> Remove-Item c:scripts* -recurse 9

を選択とファイル名:

delete_temp.bat

名前として保存:すべてのファイルをクリックし、 save ボタンをクリックします。

あらゆるアカウント(管理者または標準ユーザー)で動作します。ただそれを実行してください!

この例では一時変数を使用していますが、他のものを使用できます。 PS:Windows OSのみ!

 

Use Notepad to create a text document and copy/paste this:

rmdir /s/q "%temp%" mkdir "%temp%" 

Select Save As and file name:

delete_temp.bat

Save as type: All files and click the Save button.

It works on any kind of account (administrator or a standard user). Just run it!

I use a temporary variable in this example, but you can use any other! PS: For Windows OS only!

</div
 
 
 
 
4
 
vote

ファイルを削除するには:

<事前> <コード> %PathToFolder%0

すべてのファイルを含むフォルダを削除するには:

<事前> <コード> %PathToFolder%1

特定のフォルダからすべてのファイルを削除する(フォルダ自体を削除しない)は少し複雑です。 <コード> %PathToFolder%2 フォルダを削除できませんが、すべてのサブフォルダからファイルを削除します。だから2つのコマンドが必要です:

<事前> <コード> %PathToFolder%3
 

To delete file:

del PATH_TO_FILE 

To delete folder with all files in it:

rmdir /s /q PATH_TO_FOLDER 

To delete all files from specific folder (not deleting folder itself) is a little bit complicated. del /s *.* cannot delete folders, but removes files from all subfolder. So two commands are needed:

del /q PATH_TO_FOLDER*.* for /d %i in (PATH_TO_FOLDER*.*) do @rmdir /s /q "%i" 
</div
 
 
     
     
4
 
vote

次のコマンドを使用して、すべてのコンテンツと親フォルダ自体を削除します。

<事前> <コード> %PathToFolder%4
 

You can do it by using the following command to delete all contents and the parent folder itself:

RMDIR [/S] [/Q] [drive:]path             
</div
 
 
   
   
0
 
vote
<事前> <コード> %PathToFolder%5
 
@ECHO OFF rem next line removes all files in temp folder DEL /A /F /Q /S "%temp%*.*" rem next line cleans up the folder's content FOR /D %%p IN ("%temp%*.*") DO RD "%%p" /S /Q 
</div
 
 
 
 
0
 
vote

私はこれらのアプローチのいくつかを試しましたが、これは正しく機能しませんでした。

サイト Windowsコマンドライン

<事前> <コード> %PathToFolder%6

私が必要としているとまったく働き、op。

 

I tried several of these approaches, but none worked properly.

I found this two-step approach on the site Windows Command Line:

forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==FALSE del @file"  forfiles /P %pathtofolder%  /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file" 

It worked exactly as I needed and as specified by the OP.

</div
 
 
     
     
-11
 
vote

使用:

<事前> <コード> del %pathtofolder%*.* /s /f /q

これは、読み取り専用ファイルを含む %pathtofolder% 内のすべてのファイルとサブフォルダを削除し、確認のために促しません。

 

Use:

del %pathtofolder%*.*   /s /f  /q 

This deletes all files and subfolders in %pathtofolder%, including read-only files, and does not prompt for confirmation.

</div
 
 
         
         

関連する質問

6  Linuxでファイルにロックされているプロセスがどのようなプロセスにあるのかわかりますか?  ( How do i find out what process has a lock on a file in linux ) 
今日私は「それはビジーだった」とフォルダを削除できなかったという問題がありました。 どのアプリケーションをどのアプリケーションに責めるか、またはブルートフォースで削除することもできますか? ...

3  存在しないフォルダの名前を取得するための最善の方法は何ですか?  ( Whats the best way to get the name of a folder that doesnt exist ) 
私が確実になることができるフォルダ名を含む文字列を取得するための最良の方法は何ですか? が存在しませんか?つまり、指定されたパスに対して DirectoryInfo.Exists を呼び出すと、falseを返します。 編集:それ以降の理由はエラーチェッカーのテ...

3  WordPress:メディアフォルダを移動します  ( Wordpress move media folder ) 
フォルダ(/ Uploads / 2010)を別のサーバーに移動したいが、メインサイトにフォルダからのファイルにアクセスできるようにしたい。 たとえば、今すぐ画像URLを持っています。 2010 / Pic.jpg フルURL: http://www.dom...

2  PHP CodeIgniterコントローラを使用してディレクトリ内のファイルへのアクセスを制限する方法  ( Php codeigniter how to restrict access to files in a directory using the control ) 
私はにフォローアップしたいと思いました。質問私は以前に私がまだ答えることができないものを尋ねました。 要約すると、 www.mysite.com/uploads の目標は、PHPコントローラとディレクトリの両方として「アップロード」を「アップロード」することで...

2  Laravel 7:ディレクトリ内のブレードファイルから名前付きビュールートを生成  ( Laravel 7 generate named view routes from blade files in directory ) 
この問題を解決するために良い方法はあります:私はいくつかのブレード・テプレートを持つフォルダー<コード> ressources/views/project/content を持っています、言ってみましょう: <事前> <コード> home.blade.php ...

76  NETパスがディレクトリではなくファイルであるかどうかを確認する方法  ( Net how to check if path is a file and not a directory ) 
パスを持っていて、ディレクトリまたはファイルであるかどうかを判断する必要があります。 これは、パスがファイルであるかどうかを判断するための最良の方法ですか? <事前> <コード> string file = @"C:Testfoo.txt"; bool i...

14  一連のファイルのディレクトリを検索しますか?  ( Searching directories for tons of files ) 
私はMSVEを使っています、そして私は私のものを私のタイルがあります私は上に層に表示されています。問題は、それらのトンがあり、それらはネットワークサーバー上にあります。特定のディレクトリでは、30,000以上のファイルの順序に何かがあります。最初はDirect...

0  前のディレクトリを使用してCSS相対URLの起動に問題があるのはなぜですか  ( Why am i having issues with starting a css relative url with a previous director ) 
このようなURLを使って背景画像をロードしています: <事前> <コード> background-image: url(../../images/folder/imageName.png); 特定のページでは、これはうまく機能しますが、他のものでは、このよ...

2  Mavenを使ったエレベータープロジェクトのために私のWebアプリケーションフォルダにHTMLファイルをどこに置きますか?  ( Where do i put html files in my web app folder for a lift project with maven ) 
スカラのためのフレームワークを持ち上げるのは新しいです。何らかの理由で、index.htmlはWeb-Appディレクトリにあり、jettyを起動するとき、 http:// localhost:8080 / はそのindex.htmlファイルを正しく表します。た...

492  パスとファイル名から違法文字を削除する方法  ( How to remove illegal characters from path and filenames ) 
単純な文字列から、不正なパスとファイル文字を削除する堅牢で簡単な方法が必要です。私は以下のコードを使いましたが、それは何もしていないようです、私は何がありませんか? <事前> <コード> using System; using System.IO; name...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有