次のコードを使用して、Windowsフォームの「参照」機能でフォルダーを選択し、そのパスをgciコマンドレットに渡します。
cls
Function Get-Directory($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |
Out-Null
$OpenfolderDialog = New-Object System.Windows.Forms.FolderBrowserDialog
$OpenfolderDialog.RootFolder = $initialDirectory
$OpenfolderDialog.ShowDialog()| Out-Null
$StartDir = $OpenfolderDialog.SelectedPath
Return $StartDir | Out-String
}
$myDir = Get-Directory -initialDirectory "Desktop"
$Child = gci -path $mydir -r -Filter *.jpg
Foreach ($item in $Child) {Move-Item -path $item.pspath -Destination $myDir -Force}
しかし、私はこれらのエラーを受け取ります:
*** C:\ Test \ Combine Pics2.ps1:17 char:13 + $ Child = gci <<<< -path $ mydir -r -Filter * .jpg + CategoryInfo:ObjectNotFound:(C:\ Test:String )[Get-ChildItem]、ItemNotFoundException + FullyQualifiedErrorId:PathNotFound、Microsoft.PowerShell.Commands.GetChildItemCommand
Move-Item:引数がnullであるため、パラメーター'Path'に引数をバインドできません。C:\ Test \ Combine Pics2.ps1:19 char:43 + Foreach($ item in $ Child){Move-Item -path <<<< $ item.pspath -Destination $ myDir -Force} + CategoryInfo:InvalidData: (:) [Move-Item]、ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationErrorNullNotAllowed、Microsoft.PowerShell.Commands.MoveItemCommand ***
$ myDir変数はString型ですが、なぜ-pathパラメーターに渡されないのですか。