.net PowerShell FSW脚本无法运行
我正在尝试监视一个文件夹,用户将把包含文件的文件夹复制到公共空间。复制文件夹后,脚本将创建一个目标文件夹,并为源文件夹中的每个文件执行一个批处理文件,并传递两个变量;第一个是文件名,第二个是目标文件夹。处理完所有文件后,脚本应将源文件夹移动到存档中,并在名称中添加“_archive”文本对其进行重命名 我无法正确执行脚本的任何部分。当我检查作业状态时,它显示为失败。如果停止作业并将其删除,则无法注销事件。任何帮助都将不胜感激 以下是脚本:.net PowerShell FSW脚本无法运行,.net,powershell,.net,Powershell,我正在尝试监视一个文件夹,用户将把包含文件的文件夹复制到公共空间。复制文件夹后,脚本将创建一个目标文件夹,并为源文件夹中的每个文件执行一个批处理文件,并传递两个变量;第一个是文件名,第二个是目标文件夹。处理完所有文件后,脚本应将源文件夹移动到存档中,并在名称中添加“_archive”文本对其进行重命名 我无法正确执行脚本的任何部分。当我检查作业状态时,它显示为失败。如果停止作业并将其删除,则无法注销事件。任何帮助都将不胜感激 以下是脚本: $inputFolder = 'c:\cat2proe\
$inputFolder = 'c:\cat2proe\convertSource' # Enter the root path of the source folder.
$filter = '*.*' # You can enter a wildcard filter here.
$outputFolder = 'c:\cat2proe\convertDest' # Enter the root path of the destination folder
$storageFolder = 'c:\cat2proe\Archive' # Enter the root path of the archive folder
$fsw = New-Object IO.FileSystemWatcher $inputFolder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'DirectoryName'}
Register-ObjectEvent $fsw Created -SourceIdentifier FolderCreated -Action {
$convFolder = $Event.SourceEventArgs.Name
$fpath = $Event.SourceEventArgs.FullPath
$workFolder= $inputFolder + "\" + $convFolder
$targetFolder = $outputFolder + "\" + $convFolder + "_converted"
$archiveFolder = $storageFolder + "\" + $convFolder + "_archived"
$files = Get-ChildItem $workFolder
New-Item -Path $targetFolder -ItemType directory -Force
New-Item -Path $targetFolder + "\log" -ItemType directory -Force
ForEach ($file in $files) {
catia5batch.bat $file.fullName $targetFolder | Out-File -FilePath $targetFolder + "\log\conversionLog.log" -Append -InputObject log "$($_.BaseName)$(get-date -Format MM-dd-yyyy)$($_.extension) has been converted successfully."}
Move-Item -path $workFolder -destination $archiveFolder -Force
}
“工作状态”?-我没有看到任何就业机会被创造出来。请发布相关的源代码以及错误消息。如果你缩进你的资料来源,也有助于找到可能的答案。顺便说一句,在你发布的代码中似乎有不匹配的大括号。
Register ObjectEvent
和ForEach
有一个大括号,但只有一个小括号。而Register ObjectEvent
的代码使用变量$Event
,但未定义该变量。您可能错过了Param()
语句。我建议您回到获取代码的地方,查看代码的描述。@user2460798$Event
在该上下文中是一个自动变量,不需要declaration@MathiasR.Jessen谢谢这在PS 2.0中是真的吗?@MathiasR.Jessen那么这可能是告诉提问者$Event未定义的一个很好的理由。@user2460798在PS 2.0中是真的,是“工作状态”?-我没有看到任何就业机会被创造出来。请发布相关的源代码以及错误消息。如果你缩进你的资料来源,也有助于找到可能的答案。顺便说一句,在你发布的代码中似乎有不匹配的大括号。Register ObjectEvent
和ForEach
有一个大括号,但只有一个小括号。而Register ObjectEvent
的代码使用变量$Event
,但未定义该变量。您可能错过了Param()
语句。我建议您回到获取代码的地方,查看代码的描述。@user2460798$Event
在该上下文中是一个自动变量,不需要declaration@MathiasR.Jessen谢谢在PS 2.0中是这样吗?@MathiasR.Jessen那么这可能是告诉提问者$Event未定义的一个很好的理由。@user2460798在PS 2.0中是这样的,是的