ファイルIDにはマイナス記号を使用できません。 uint32を使用する必要があるときに、ファイルIDをリストするソフトウェアがint32(符号付き整数)を表示しているため、左(32ビット目)のビットの値1
は、2147483648
の代わりに負の数になります。あなたはそれを変換する必要があり
は、例:
function closefilehandle ($id) {
Write-Host "ID = $id"
#If negative id, convert to uint32
if($id -lt 0) { $id = [uint32]("0x{0:x}" -f $id) }
Write-Host "Closing handle $id"
net files $id /close
}
closefilehandle -id (-335362046)
出力:
ID = -335362046
Closing handle 3959605250
There is not an open file with that identification number.
More help is available by typing NET HELPMSG 2314.
出力はエラーですが、負のidはあなたの構文を与えるだろうとして、それは、エラーの右のようなものですエラー。
"PowerShellは数値がパラメータであると思うと思います*" - あなたは簡単に 'mkdir -1'と' cd -1'を問題なく使うことができますし、意味がありません変数* value *をそのようなパラメータ名に変換することになります。あなたは 'netファイル" $($ _。ID) "/ close'を試して、PSが文字列として見えるようにすることができますが、'> $ null'を取り除くとエラーが発生する可能性が非常に高くなります次に、推測の代わりに実際に何が間違っているのかを調べる。 – TessellatingHeckler