2016-08-17 21 views
0

これは非常に簡単です。私はpowershell関数を書いていますが、パラメータが有効なディレクトリであるかどうかを検証したいのですが、TrueまたはFalseを返す代わりにTest-Pathがエラーになりますか?True/Falseを返す代わりにTest-Pathがエラーを返す

これは、私が関数の動作について読んでいるものとは対照的です。

if (Test-Path -PathType Container "asdf") 
{ 
    Write-Output "Exists" 
} 
else 
{ 
    Write-Output "Does not exist" 
} 

enter image description here

答えて

1

あなたはSQLSERVERドライブにしています。あなたの場所をFileSystemドライブに戻す必要があります。

+0

ああ、私は、SQLサーバ上のpowershellが何らかのドライブになることを認識しませんでした。 FileSystemドライブをデフォルトにする標準的な方法はありますか、 'Set-Location $ PSScriptRoot'だけですか? –

0

SQLSERVERドライブにセットアップしました。ローカルのファイルシステムに戻ってくる必要があります。先に進んでください。

Set-Location C: 

次に、Ifステートメントを実行することができます。

これは、ローカルファイルシステムに到達する方法を明確にするために与えられた最初の回答にコメントしましたが、私の評判が低いためコメントできません。

2

あなたが受け入れた答えは正しいですが、私はあなたが何ができるかを広げたいと思っていました。

これは非常に最近まで問題でした。 PowerShell's SQL server support has been vastly improved、そんなに新しいモジュールを作成したので、まだSQLPSを使用している場合は、代わりにSqlServerモジュールを使用してください。

SQLPSとすると、自動的にドライブがSQLSERVER:プロバイダに変更されます。これは、中にあなたの現在の位置を保存し

Push-Location 
Import-Module SQLPS 
Pop-Location 

:あなたが使用したりSQLPSをサポートして(それも超スロー完成タブを作ることができます)この動作を回避したい続けなければならない場合

は、私はこのパターンが好きですロケーションスタック、モジュールをインポートして(あなたのロケーションを変更します)、前のロケーションをポップします。

新しいモジュールの使用を検討することを強くお勧めします。新しいモジュールには、いくつかの重要な機能拡張や改良があります。

+1

素晴らしい情報!私は開発者ですが、私のパワーシェルの基盤はまだ成長しており、新しいことを学ぶのが大好きです。 –

関連する問題