6

Прошу помощи, не срабатывает .bat

Задача простая, но у меня не срабатывает батник из планировщика заданий.
Я не программист и реальных знаний и практики в этом деле не имею, но по работе очень нужно решить эту задачу.

Задача в том, что нужно удалять старые (3х дневные файлы) из определенной папки, как только они устареют.


Скрипт в Windows PowerShell ISE его содержание:  (файл tt.ps1)

$Now = Get-Date

$Days = "3"

$TargetFolder = "C:\test"

$Extension = "*.txt"

$LastWrite = $Now.AddDays(-$Days)

$Files = Get-Childitem $TargetFolder -Recurse | Where{$_.LastWriteTime -le "$LastWrite"}

foreach ($File in $Files)

{

if ($File -ne $NULL)

{

write-host "Deleting File $File" -ForegroundColor "DarkRed"

Remove-Item $File.FullName | out-null

}

else

{

Write-Host "No more files to delete!" -foregroundcolor "Green"

}

}


Содержание BAT файла:


%SystemRoot%system32windowspowershellv1.0powershell.exe -command “c:tt.ps1”

Запуская сценарий  tt.ps1 из Windows PowerShell ISE, файлы удаляет.

Запуск батника этого не делает.
Путь в батнике к PowerShell верный, проверял не раз


Windows 10.


Прошу помощи, заранее благодарю.

Для минусов внутри.

Прошу помощи, не срабатывает .bat

В таком состоянии уже 4й час)

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

2
Автор поста оценил этот комментарий

для минусов

1
DELETED
Автор поста оценил этот комментарий

Да. -m [маска файлов]

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

спасибо, попробую на досуге

2
DELETED
Автор поста оценил этот комментарий

Ух ты! Использовать батник для запуска ps1-скрипта для удаления файлов.

Мож проще самим батником прибивать?


Forfiles -p "c:\test" -s -m *.* -d -3 -c "cmd /c del /q @path"

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

какой мануал нашел по такому и делал, где *.* можно указать формат файлов, которые удалять надо?

показать ответы
1
Автор поста оценил этот комментарий

Через файл как раз не даёт, хотя может дело в кавычках

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

спасибо большое за поиощь! батник с выражением powershell.exe -executionpolicy bypass c:\tt.ps1 сработал. завтра сделаю в планировщике, но считаю если он отработал сейчас то и там пройдет.
Не знал что не нужно полный путь давать, прокачал скилл)

при том отработало и с кавычками и без

0
Автор поста оценил этот комментарий

это здесь слеш режется или у тебя путь так и прописан? оставь в батнике просто

powershell.exe "-executionpolicy bypass -file c:\tt.ps1"

pause

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

C:\>powershell.exe "-executionpolicy bypass -file c:\tt.ps1"

-executionpolicy : Имя "-executionpolicy" не распознано как имя командлета, функции, файла сценария или выполняемой про

граммы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

строка:1 знак:1

+ -executionpolicy bypass -file c:\tt.ps1

+ ~~~~~~~~~~~~~~~~

+ CategoryInfo : ObjectNotFound: (-executionpolicy:String) [], CommandNotFoundException

+ FullyQualifiedErrorId : CommandNotFoundException

Иллюстрация к комментарию
показать ответы
0
Автор поста оценил этот комментарий

Планировщик умеет сам в повершелл. Без всяких батников.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

pause в конце добавь, увидишь что не нравится

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

в батник? подскажи пожалуйста синтаксис

показать ответы
1
Автор поста оценил этот комментарий

powershell.exe "-executionpolicy bypass -file c:\tt.ps1"

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

%SystemRoot%system32windowspowershellv1.0powershell.exe "-executionpolicy bypass -file c:\tt.ps1" - запускаю батник, не але

показать ответы