【发布时间】:2019-12-22 04:55:41
【问题描述】:
我的脚本在 ISE 中运行,但是当我想在 cmd 中运行它或右键单击我的脚本文件并使用 Powershell 运行时,我收到一条错误消息。
我在 Windows 7 上,我的 Powershell 版本是 Powershell 2.0
已经尝试执行
powershell.exe -STA -FILE "C:\Users\Mgtspare\Documents\Conversion\Conversion_Script.ps1"
我的脚本:
### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Users\Mgtspare\Downloads"
$watcher.Filter = "*.xls"
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = {
$watcher.Path *.xls | rename-item -newname { [io.path]::ChangeExtension($_.name, "xlsx") }
}
### DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 5}
错误信息:
您必须在“*”运算符的右侧提供值表达式。
【问题讨论】:
-
$watcher.Path *.xls无效。也许您只想将属性通过管道传递到命令$watcher.Path | rename-item ..... -
我找到了解决方案 $watcher.Path 是问题:)
标签: powershell windows-7 powershell-2.0