-1
Iは、New-Itemコマンドで追加したが、それは私の構文を好きではないです。助けてください:PowerShellの新項目コマンド
$Dir = get-childitem -path "\\ahs-bind01\ftptest01\CRAR" -recurse
$Source = $Dir | where {$_.extension -eq ".txt"}
#Declare the file path and sheet name
$file = "C:\Users\us6205\Desktop\DatabaseNameConfigs\Test\CareMoveFileParentDestPaths.xlsx"
$sheetName = "sheet1"
#Create an instance of Excel.Application and Open Excel file
$objExcel = New-Object -ComObject Excel.Application
$workbook = $objExcel.Workbooks.Open($file)
$sheet = $workbook.Worksheets.Item($sheetName)
$objExcel.Visible=$false
#Count max row
$rowMax = ($sheet.UsedRange.Rows).count
#Declare the starting positions
$rowLOC,$colLOC = 1,1
$rowUNC,$colUNC = 1,2
#loop to get values and store it
for ($i=1; $i -le $rowMax-1; $i++)
{
$LOC = $sheet.Cells.Item($rowLOC+$i,$colLOC).text
$UNC = $sheet.Cells.Item($rowUNC+$i,$colUNC).text
$Path = Get-ChildItem $UNC -recurse |
Where-Object { ($_.PSIsContainer -eq $true) -and ($_.Name -match "$Source") }
$Dest = $Path | New-Item -path $Dest -itemtype directory | Move-Item -Path $Source -Destination $Dest -Force
}
#close excel file
$objExcel.quit()
エクセルドック:
Col A Col B
Test C:\Users\US6205\Desktop\Test\Unprocessed
Test1 C:\Users\US6205\Desktop\Test1\Unprocessed
誤差はかなり明確です。 $ dest変数は、その変数を使用しようとする時点で値を持たないようです。あなたのパイプラインを短くして、それがその時点で保持しているものと、それがあなたが考えるべきものを保持していない理由を理解してください。 – EBGreen
私はまた、$パスがゼロ、1、または複数のファイルシステムオブジェクトとなり、新項目の-Pathパラメータは、1つのまたは複数の文字列を期待していることを指摘します。ですから少なくとも、タイプの不一致が予想されます。値を取得し、それを(; $ I -le $ rowMax-1; $ i = 1〜I ++は$)ため 格納する – EBGreen
#loop { $ LOC = $ sheet.Cells.Item($ rowLOC + $ Iを$ colLOC)の.text $ UNC = $ sheet.Cells.Item($ rowUNC + $ I、$ colUNC) の.text $パス=は、Get-ChildItemコマンドレット$ UNC -recurse | どこ-オブジェクト{($ _ PSIsContainer -eq $ trueを返します。) - および($ _名-match "$ソース"。)} 新項目-Path $ UNC型ディレクトリ 移動-項目-Path $ソース - 目的地$パス - フォース } #クローズをExcelファイル $ objExcel.quit() – Peter