我有一个 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
}
I also tried to add a basic task using taskschd.msc
. It is still not working.
Here's what I found, and maybe that will help to debug it.
If I open up a PowerShell window and run the script there, it works. But if I run it in a command prompt,
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