Форум программистов, компьютерный форум, киберфорум
Наши страницы
PowerShell
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
WorldDoom
0 / 0 / 0
Регистрация: 20.01.2017
Сообщений: 5
1

Удаление файлов в каждой папке

11.07.2019, 11:16. Просмотров 746. Ответов 26
Метки нет (Все метки)

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
function del  
{
    $Dir = "E:\temp\" # Где необходимо удалять файлы
    $Period = "-7" # Количество хранимых дней.  
    
    "Удаленые файлы: <br>"
    dir $Dir -Recurse -File | where { $_.LastWriteTime -lt (Get-Date).AddDays($Period) } # Отображения файлов для удаления
    
    # Удаление файлов, дата создания которых больше заданного количества дней
    Get-ChildItem $Dir -Recurse -File | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays($Period)} | Remove-Item 
    '<br><br>'
}
Имеется такая функция, которая должны входить в каждую папку в директории и удалять файлы по дате.

Проблема в том, что выводит такое:
Командлет Remove-Item в конвейере команд в позиции 1
Укажите значения для следующих параметров:
Path[0]:


Не совсем понимаю, что я не так делаю и как исправить данную ситуацию?

Заранее благодарю.

p.s. Пишу на PS 4ий день.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2019, 11:16
Ответы с готовыми решениями:

Подсчитать количество нужных файлов в каждой папке
Здравствуйте, подскажите, пожалуйста, как подсчитать количество нужных мне файлов в каждой папке....

Проверка наличия файлов в папке
Есть скрипт который проверяет наличие файлов в папке, подскажите как исправить его, что если хотя...

Поиск в папке недавно измененных файлов
Добрый день! У меня есть задание с помощью PowerShell создать скрипт, который бы искал в...

Скрипт для анализа файлов в папке
Приветствую! Друзья, подскажите, есть какой-нибудь апплет или функция для работы с файлами?...

Произвольный порядок сортировки файлов в папке
добрый день всем! подскажите, пожалуйста, кто знает, как поставить вручную один из нескольких...

26
KDE777
1529 / 972 / 386
Регистрация: 22.01.2016
Сообщений: 2,719
11.07.2019, 16:02 21
Цитата Сообщение от alhaos Посмотреть сообщение
а вот напиши это в одну строку и посмотришь
Так v_svitere уже выше написал/показал - без foreach и лишних конвейеров

PowerShell
1
"Удалённые файлы:`n$(ri (ls C:\Temp -rec -file |? LastWriteTime -LT (date).AddDays(-7)).FullName -EA 0 -verb)"
0
alhaos
51 / 39 / 13
Регистрация: 20.02.2019
Сообщений: 147
12.07.2019, 07:44 22
v_svitere, KDE777, я предложил конструкцию try catch в одну строку написать, и насладиться результатом и процессом

Добавлено через 4 минуты
v_svitere,
Цитата Сообщение от KDE777 Посмотреть сообщение
Отсутствие файлов для удаления в этом подходе - это только малая часть того, что может случится при использование связки Get-ChildItem и Remove-Item, например:
отсюда получается, что у подобного решения как минимум одним возможным исключением меньше

PowerShell
1
2
3
4
gci $workDir -Recurse -file | ? {$_.LastWriteTime -lt (Get-Date).AddDays(-($ageInDays))} | %{
        rm $_.FullName
        write-host "removed: $_"
    }
0
KDE777
1529 / 972 / 386
Регистрация: 22.01.2016
Сообщений: 2,719
12.07.2019, 10:48 23
Цитата Сообщение от alhaos Посмотреть сообщение
я предложил конструкцию try catch в одну строку написать
А в чём заключается сложность записи try/catch в одну строку?

Код
PS C:\> try{1/0}catch{"$_"}
Попытка деления на нуль.
Добавлено через 4 минуты
+

PowerShell
1
try{ri ($list=ls C:\Temp -rec -File).FullName -EA 1}catch{"$_"}
0
v_svitere
697 / 408 / 134
Регистрация: 03.06.2009
Сообщений: 1,189
Записей в блоге: 4
12.07.2019, 12:25 24
alhaos,

я предложил конструкцию try catch в одну строку написать, и насладиться результатом и процессом
Вообще не вижу смысла писать код в одну строку. Чем это полезно?
Код с разметкой гораздо проще смотреть визуально, и конечно удобнее редактируется

Если внимательно прочитать предложение:
Нет необходимости в повторном вызове Get-ChildItem, все можно сделать в одной строке
То станет понятно, что имеется ввиду, отказ от повторного вызова gci в первичном коде TC.

отсюда получается, что у подобного решения как минимум одним возможным исключением меньше
Да бросьте, вы считаете что ваше решение лучше? Это отнюдь не так. Оба решения имеют право на жизнь, а какое лучше можно отследить эмпирически.

В продакш версии все равно придется прибегнуть к использованию try/catch и нулевое исключение будет обработано в общем потоке исключений.
Об этом вам уже говорили выше.
0
12.07.2019, 12:25
alhaos
51 / 39 / 13
Регистрация: 20.02.2019
Сообщений: 147
12.07.2019, 12:42 25
Цитата Сообщение от v_svitere Посмотреть сообщение
считаете что ваше решение лучше?
это не так, да даже если бы так было в любом случае это субъективная оценка, и она мало значима как минимум для меня.
Цитата Сообщение от v_svitere Посмотреть сообщение
а какое лучше можно отследить эмпирически.
а ну ка предложите вариант.
0
v_svitere
697 / 408 / 134
Регистрация: 03.06.2009
Сообщений: 1,189
Записей в блоге: 4
12.07.2019, 14:13 26
alhaos,
а ну ка предложите вариант.
Что именно, предлагать-то? Я же написал, что лучший вариант покажут эмпирические исследования.
0
alhaos
51 / 39 / 13
Регистрация: 20.02.2019
Сообщений: 147
12.07.2019, 14:17 27
ну я надеюсь что предложите вариант исследования эмпирическими методами, а то смотреть на реку, в надежде, что там проплывет труп врага тоже эмпирический метод )
0
12.07.2019, 14:17
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2019, 14:17

Автоматическое добавление прав пользователя СЕТЬ для файлов в общей папке Win7
При помещении в расшареную папку (win7) файлы видны по сети, но доступа к ним нет (висит...

Удаление файлов в папке
Здравствуйте! В папке находятся файлы и другие папки в которых также есть папки. Задача такова:...

Удаление файлов в папке по очереди
как удалять по списку видеофайлы батником? после того как файл перепакован, нужно его удаление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru