我创建了一个Powershell脚本,该脚本具有一个Foreach-Object循环,该循环格式化了位于InputFolder中的xml文件。 (Format-XML是一个函数)
Get-ChildItem C:\InputFolder -Filter *.xml |
Foreach-Object {
cat $_.FullName | Format-XML
}
现在我们处于项目的不同阶段,我们不希望对所有文件都运行它,而只是对其中一个新文件运行。
我如何创建一个Powershell脚本,该脚本可以将一个文件名作为输入,而在其他时候调用它,以便在需要时也可以处理多个文件?
答案 0 :(得分:0)
在<div id="root-panel">
属性上为函数参数设置ValueFromPipeline
属性。
示例:
Parameter
用法:
function foo
{
[CmdletBinding()]
param( [Parameter( Mandatory = $true,
Position = 0,
ValueFromPipeline = $true )]
[string] $File
)
process
{
Write-Host "The file is: $File"
}
}
答案 1 :(得分:0)
您需要为脚本使用参数,以便您可以指定要处理的内容。像这样:
Param(
$Path
)
Get-ChildItem $Path -Filter *.xml |
Foreach-Object {
cat $_.FullName | Format-XML
}
然后您可以像这样调用脚本:
.\FormatXMLFiles.ps1 'C:\InputFolder'
将处理整个文件夹,或者
.\FormatXMLFiles.ps1 'C:\InputFolder\MyFile.xml'
仅会处理一个文件。