3

バッチ スクリプトを完了する必要があります。パスは C:\Users\Mahmo03S\Shaban です。そのパスには、いくつかのサブフォルダーがあります。アンシス。サブフォルダーAnsysには、さらに多くのサブフォルダーがあります=フォルダーツリーです。フォルダーとサブフォルダー内のすべてのファイルが 3 日より古い場合、バッチ スクリプトは Ansys フォルダーを削除する必要があります。過去 3 日間に Ansyn のファイルが 1 つだけ変更された場合、Ansys では何も起こらないはずです。私は確かな解決策を作ろうとしましたが、サブサブフォルダー内のファイルは3日間変更されていないため、バッチファイルはAnsysディレクトリ内のサブサブフォルダーを削除します。

タスクを実行する3つのバッチファイルを取得しました。

Script.bat

@echo off
setlocal enableextensions
pushd C:\Users\Mahmo03S\Desktop\Shaban

set /p check="Select a date:" 
Rem When prompted with above line type the date 3 days ago.

forfiles /c "cmd /c (IF @isdir==TRUE call C:\Users\Mahmo03S\Desktop\Search.bat "@path" "%check%")"

popd

検索.bat

set del=TRUE
forfiles /p %1 /d -%2 /s /m * /c "cmd /c (IF @isdir ==TRUE call C:\Users\Mahmo03S\Desktop\DeleteFolders.bat "@path" "%check%" "%del%")"

DeleteFolders.bat

set del=FALSE
if %del%==FALSE (rmdir /S /Q %1)

問題は、Ansys フォルダーにサブサブフォルダー (hello など) を取得したことです。hello フォルダーでは、すべてのファイルが 3 日以上経過しています。このスクリプトは、実行すべきではない hello フォルダーを削除します。フォルダー内のすべてのファイルが 3 日以上経過している場合にのみ、Ansys を削除する必要があります。過去 3 日間に Ansys フォルダーで 1 つのファイルのみが変更された場合、Ansys フォルダー内のファイルは削除されません。

すべてのファイルが 3 日以上経過すると Ansys フォルダーが削除されるように、バッチ ファイルを作成しました。ただし、サブサブフォルダー内のファイルが 3 日より古いという理由だけでサブサブフォルダーを削除するべきではありません。

どうやってやるの?

4

2 に答える 2