У меня есть сценарий PowerShell, который контролирует папку с изображениями. Мне нужно найти способ автоматического запуска этого скрипта после запуска компьютера.
Я уже попробовал следующие методы, но не смог заставить его работать.
-
Используйте
msconfig
и добавьте сценарий PowerShell при запуске, но я не могу найти сценарий PowerShell в этом списке. -
Создайте ярлык и поместите его в папку автозагрузки. Неудачно.
%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -File "C:\Doc\Files\FileMonitor.ps1"
или же
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -File "C:\Doc\Files\FileMonitor.ps1"
Вот мой скрипт PowerShell:
$folder = "C:\\Doc\\Files" $dest = "C:\\Doc\\Files\\images" $filter = "*.jpg" $fsw = new-object System.IO.FileSystemWatcher $folder, $filter -Property @{ IncludeSubDirectories=$false NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite' } $onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { Start-Sleep -s 10 Move-Item -Path C:\Doc\Files\*.jpg C:\Doc\Files\images }
-
Я также попытался добавить основную задачу с помощью
taskschd.msc
. Это все еще не работает.Вот что я нашел, и, возможно, это поможет отладить его.
Если я открываю окно PowerShell и запускаю там скрипт, он работает. Но если я запускаю его в командной строке,
powershell.exe -File "C:\Doc\Files\FileMonitor.ps1"
Она не будет работать. Я не уверен, что это проблема разрешения или что-то еще.
Кстати, у меня установлен PowerShell 3.0, и если я наберу $ host.version, он покажет 3 там. Но мой powershell.exe, похоже, все еще v1.0.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe