1

ユーザーにフォルダーまたはフォルダーを選択するように求めるスクリプトを使用しています。コードは次のとおりです。

$wrkfolder = "C:\MyPC\WorkingFolder"              #workfolder starting location

$app = New-Object -ComObject shell.Application

# Display Browse for File to select a folder or ALL folders
$folder = $app.BrowseForFolder(0,"Select Folder -- Cancel to select ALL",0,$wrkfolder)

    if ($folder.self.path -ne "") {
        $fldr = $folder.Self.Path
        $fldrName = $folder.Self.Name
        } 

現在、フォルダー参照入力ダイアログがユーザーに表示され、ユーザーが [キャンセル] を選択すると、$wrkfolder 内のすべてのフォルダーが選択されます。または、1 つのフォルダーを選択すると、そのフォルダーが返されます。ユーザーがダイアログを閉じると、$null が返されます (これは、[キャンセル] を選択した場合と同じです)。

ユーザーがフォルダーを選択し、複数のフォルダーを選択し、すべてのフォルダーを選択し、キャンセルが実際にダイアログを閉じてスクリプトを終了できる値を返すオプションをスクリプトに許可したいと思います。

このフォームで車輪を再発明することなく、入力フォルダーの参照ダイアログでユーザーにプロンプ​​トを表示し、ユーザーが 1 つ以上のフォルダー、すべてのフォルダーを選択できるようにするか、スクリプトをキャンセルできるようにする簡単な方法はありますか? 私がこれまでに得たものよりも、これを行うためのより良い方法が必要です。

4

1 に答える 1

1

PowerShell V3 ベータ版を実行していない限り、これは役に立ちませんが、今後の参考のために、Out-GridView's新しいPassThruパラメーターを使用できます。

Get-ChildItem -Directory | Out-GridView -PassThru | ...

Out-GridView複数選択が可能で、キャンセル ボタンを使用してパイプライン操作全体をキャンセルすることもできます。

于 2012-05-07T15:49:53.063 に答える