我正在设计我自己的函数,它将.ps1 文件重命名为 .psm1与.ps1 文件的名称相同。
示例:Add-UdfUser.ps1
将成为 A dd-UdfUser.psm1
。
它工作得很好。它使用与 .ps1 文件相同的名称更改名称。
唯一的问题是,当您回显 $PSFileName 重命名为 $NewName 或回显文件 $PSFileName 不存在时,除非您使用 break 语句,否则它不会打印在屏幕上。
有人可以告诉我为什么会发生这种情况以及解决此问题的任何替代方法吗?
这是参考的代码 -
Function Rename-UdfFunction{
[cmdletbinding()]
Param(
[Parameter(Mandatory)]
[String]$PSFileName,
[Parameter(Mandatory)]
[String]$UdfModulePath
)
[String]$SplitName = $PSFileName -split '.ps1' | ForEach-Object {
if ((get-childitem -name -path $UdfModulePath) -match $PSFileName ){
[String]$NewName = $_.TrimEnd()+'.psm1'
Rename-Item -Path $UdfModulePath\$PSFileName -NewName $NewName
echo "$PSFileName renamed to $NewName"
#break
}else{
echo "The file $PSFileName doesnot exist"
#break
}
}
}
这是处理您的用例的重构。每个阶段都有经过验证的结果。