コードをこれに絞り込みました-
Function Check-VirtualPhysicalPath{
Param([Parameter(Mandatory=$True)] [AllowEmptyString()][String]$Page)
#This creates an arraylist of items that are our virtual/physical paths
$WebVD= Get-WebVirtualDirectory
}
このスクリプトを関数設定で実行すると、'Get-WebVirtualDirectory' の結果でキャスト エラーが返されます。行を実行しようとすると、これは私を困惑させます
$WebVD= Get-WebVirtualDirectory
スクリプトでもコンソールでも、エラーは返されず、変数にアクセスでき、データは正しいです。私は何を間違っていますか?
補足として、これは問題のあるコードにすぎないため、すべてを含めているわけではありませんが、他のすべてをコメントアウトしても、ここに表示されているものと同じ問題を実行することになります。
別のスクリプトでこれを使用してコードを呼び出しています
$page = [string]$(gc "C:\page.txt")
. C:\VP.ps1
$(Check-VirtualPhysicalPath($page))
Powershell は、$WebVD 変数をキャストしているように反応しています。これがバグなのか、何かが完全に欠けているのかわかりません...
編集:
コードのその部分を引き出すのを忘れたようです。私はコードクロールをしています。ハッシュテーブルのポイントは、リソースが使用された回数をハッシュテーブルに保存していることです。キーはファイル名であり、値は使用された回数なので、定期的に使用しますそれを判断する表現。私のコードに上記のものしか含まれていない場合でも問題があるため、私の質問は他のコードとは関係ありません。