Давайте рассмотрим, что вы просите сделать из системы:
Forfiles /p "C:\temp" /d -30
Приведенная выше команда выполняет почти то, что вы хотели, найти любой файл / папку старше 30 дней.
/c "cmd /c dir @path"
Это не делает то, что вы думаете.Вы фактически просите от cmd
до dir
каждого совпадения, найденного forfiles
, и делаете полный каталог для каждого @path
, включая папки.Допустим, у вас есть каталог старше 30 дней:
C:\Temp\oldInstalldir\
Вы говорите cmd.exe
сделать:
dir "C:\Temp\oldinstalldir"
, а также каталог для каждого файла в c:\temp
снова.Итак, что вы действительно хотите, так это перечислить файлы, которые вы нашли старше 30 дней, которые forfiles
уже нашли для вас, так что рабочим решением будет просто echo
их.
ForFiles /p "C:\temp" /d -30 /c "cmd /c echo @path">temp.txt
Или только по имени файла(без пути):
ForFiles /p "C:\temp" /d -30 /c "cmd /c echo @file">temp.txt