0
我目前正在嘗試通過使用for循環,路徑和文件名數組加載腳本通過PowerShell配置文件。即使變量中的完整文件路徑是正確的,並且可用命令顯示在PowerShell窗口中,腳本也不會加載它們的函數。如何使用帶數組的foreach循環加載腳本?
注意:腳本在以這種方式運行時工作. C:\scripts\script.ps1
。
$PublicScripts = "\\fileserver\scripts"
$PersonalScripts = "C:\scripts"
$commandArrayPersonal = @("adremove-pc.ps1", "template.ps1")
$commandArrayPublic = @("get-pc.ps1",
"port-commands.ps1",
"LaptopNameChangeScript\adrenamepc-csv.ps1",
"LaptopNameChangeScript\PingPC-csv.ps1",
"remove-pc.ps1")
. C:\scripts\adremove-pc.ps1
function loopsForCommand([string]$path, [array]$commands) {
foreach ($command in $commands) {
$pathCommand = "$path\$command"
if ((Test-Path $pathCommand)) {
. "$pathCommand"
Write-Host $command
} else {
Write-Host "Unavaliable: " $command
}
}
}
"`r`n** * * * **`r`nScripts Available for use:`r`n"
loopsForCommand -path $PublicScripts -commands $commandArrayPublic
loopsForCommand -path $PersonalScripts -commands $commandArrayPersonal
"`r`n** * * * **`r`n"
編輯:在翻譯中丟失了一些代碼,刪除if($command.Contains("LaptopNameChangeScript")){
縮小的問題。需要
這裏有一個括號缺少的功能?我希望你的電話不遞歸 – Matt
謝謝@matt。我刪除了大括號。當我將代碼轉移時,這是我的錯。 – Duffy
謝謝@AnsgarWiechers,我從我發佈的代碼中刪除了一條不相關的行。當我將代碼轉移時,這是我的錯。 – Duffy