2016-07-18 1 views
1
function cee([string]$a, 
[string]$b) 
{ 
    Write-Host $a | ft 
    $a.GetType() 
    Write-Host $b | ft 
    $b.GetType() 
    Add-Type -Assembly System.IO.Compression.FileSystem 
    $compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal 
    [System.IO.Compression.ZipFile]::CreateFromDirectory($a,$b) 
} 

cee('C:\FAKE','C:\zipfile.zip')文字列パラメータはPowerShellのように私の機能では動作しない

この邸宅で実行すると、それは失敗し、エラーのある:

C:\ FAKE'C:\ zipfile.zip

IsPublic IsSerial名ベースタイプ
-------- ------------------
True True String System.Objec t>

True True String System.Object
"2"引数を指定して "CreateFromDirectory"を呼び出す例外: "指定されたパスの形式はサポートされていません。"ラインで :10文字:9 + [System.IO.Compression.ZipFile] :: CreateFromDirectory($、 + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId。 「:\ FAKEの\ C」と「C:\ zipfile.zip」

私が保存している場合は非サポート例外手動で$と$ Bの入力のような変数と各ラインを実行、変数としては、それだけで正常に動作します。

[Parameter(Mandatory = $ True)]を設定した場合は、関数を実行し、 C:\ FAKE \ とを入力します。C:\ zipfile.zipプロンプトで、うまくいきます。

+0

@PetSerAlは何の検索用語あなたは、他の答えを見つけるために使用しましたか?明らかにあなたのsearch-fuは私のものよりはるかに優れています。または、私が間違っていたことを知っていたら、あなたはそれをより簡単に見つけることができますか?私は、重複してコミュニティをぶつけるよりも、より良い仕事の検索をすることを好むだろう。 –

+0

私は検索で '[powershell]括弧'を使います。 PowerShell関数を呼び出す際にこのエラーが発生したのは初めてのことではないので、何を検索するのかはすでに分かっています。 – PetSerAl

+0

@PetSerAlありがとうございます。 –

答えて

2

あなたは正しく、あなたの関数を呼び出すされていません。名前でパラメータを呼び出すことによって、完全に

cee 'C:\FAKE' 'C:\zipfile.zip' 

以上::次のような機能を使用し

cee -a 'C:\FAKE' -b 'C:\zipfile.zip' 
+0

ああ、ありがとう、ありがとう。私は文法がどこかでなければならないことを知っていました。パワーシェルが物事を行う方法に慣れるのは面白いことでした。 –

関連する問題