次のコマンドを使用して、X日(%numb%
日数)より古いファイルを削除しています。
forfiles -p "%temp%" -s -m *.* -d %numb% -c "cmd /c del @path"
それでも、実行すると、forfilesのすべての機能とその使用方法が表示されます。
次のコマンドを使用して、X日(%numb%
日数)より古いファイルを削除しています。
forfiles -p "%temp%" -s -m *.* -d %numb% -c "cmd /c del @path"
それでも、実行すると、forfilesのすべての機能とその使用方法が表示されます。
ねじれが解消されるまで、 「DEL@path」を「echo@ path」に変更することをお勧めします...
XPsp3マシンでは、日数(%numb%)の前のハイフンが重要であることに気付きました。したがって、この:
forfiles -p "%temp%" -s -m *.* -d 30 -c "cmd /c echo @path"
これを解決しました:エラー:指定された検索条件でファイルが見つかりません。
でも、これ:
forfiles -p "%temp%" -s -m *.* -d -30 -c "cmd /c echo @path"
ディレクトリリストをくれた
あまり情報を提供していないので、2003 / Vistaを使用していない場合は、各パラメーターの後にスペースを入れないでください。
forfiles -p"%temp%" -s -m*.* -d%numb% -c"cmd /c del @path"
置換パラメータが期待どおりに機能していない可能性もあります。コマンドの前に「echo」を付けて、実際に処理されているものを確認すると便利なことがよくあります。
echo forfiles -p "%temp%" -s -m *.* -d %numb% -c "cmd /c del @path"
ネイティブでは、vbscriptを使用できます。この例では、num日は30日です
Set objFS = CreateObject("Scripting.FileSystemObject")
strFolder = "c:\test"
numdays=30
today=Now
Set objFolder = objFS.GetFolder(strFolder)
Go (objFolder)
Sub Go(objDIR)
If objDIR <> "\System Volume Information" Then
For Each eFolder in objDIR.SubFolders
Go eFolder
Next
For Each strFile In objDIR.Files
If DateDiff("d",strFile.DateLastModified,today) >= numdays Then
WScript.Echo "file found that is 1 month old or more: " & strFile
'objFSO.DeleteFile(strFile) 'uncomment to use
End If
Next
End If
End Sub