我有一个监控图像文件夹的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窗口并在那里运行脚本,它就可以工作了 . 但如果我在CMD提示中运行它,
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