さまざまなフォルダのサイズを監視するPowerShellスクリプトのセットを作成しています。私はエラーに遭遇しましたが、何が原因なのか分かりません。Powershell関数が渡されるパラメータが多すぎます
testPath("192.168.10.10","myfolder1\myfolder2\")
私は取得しています:
function getDriveLetter($ip) {
Write-Host $ip # prints: 192.168.10.10 myfolder1\myfolder2\
# expected: 192.168.10.10
switch($ip) {
"192.168.10.10" {return "E`$"; break}
"192.168.10.20" {return "D`$"; break}
default {"Unknown"; break}
}
}
function getFullPath($loc,$folder) {
Write-Host $loc # prints: 192.168.10.10 myfolder1\myfolder2\
# expected: 192.168.10.10
$drive = getDriveLetter("$loc")
$str = "\\$loc\$drive\DATA\$folder"
return $str
}
function testPath($loc,$folder) {
$mypath = getFullPath("$loc","$folder")
if (Test-Path $mypath) {
return $true
} else {
return $false
}
}
私はコマンドを実行すると:ここ
は、変数$ip
と
$loc
が実際に含まれているものを私は期待していと何
Write-Host
を示すとともに、コードです「偽」の結果が表示されますが、実行した場合:
Test-Path "\\192.168.10.10\E`$\DATA\myfolder1\myfolder2\"
このコマンドはTrueを返します。
何が欠けていますか?変数を強制的に設定しようとしました。
$mypath = getFullPath -loc "$loc" -folder "$folder"
しかし、変更はありません。何か変更があった場合、これはPowershellバージョン4にあります。
これはどうもありがとう、それを解決しました!私はまた、あなたの他の提案でスクリプト(そしてかなりの数の他のもの)を更新します。私はPowershellが括弧で複数の引数をサポートしたいと思っていますが、スペースで区切られた引数はきれいに見えません。 – Elmepo