0

Excel テーブルから値 (VALUE1) を読み取り (必要に応じて XML に変換できます)、それを変数 ($PLACEHOLDER) に割り当て、残りのスクリプトを実行する PowerShell スクリプトを作成しています。最初にループバックしますが、元の値 (VALUE1) を読み取る代わりに、その下の値 (VALUE2) を読み取り、$PLACEHOLDER を VALUE2 で上書きし、空白の値が返されるまでスクリプトを再実行します。やめてほしい。私はPowerShellに非常に慣れていません.Excel/xmlとのやり取りなので、どんな助けでも大歓迎です。(私は独学なので、パラメータについてあまり知りません)

Sample in Terrible Psuedo:
#Initial placeholder value here
$RowNumber = 0
#Start of the loop here, add one to previous value
$RowNumber +1
#Call the value in Column (1), Row ($RowNumber), and assign it to $RowValue
?????? = $RowValue
#Execute the command involving the data value
ECHO "C:/test/temporary/$RowValue"
#Goto the start of the loop.

もしよろしければ、あなたが使っている関数の簡単な説明をお願いします (パラメータ、何が起こっているのかなど)。

編集:空白行を検出してスキップできれば、それは素晴らしいことです。

EDIT3: Ansgar のコード

$xl = New-Object -COM 'Excel.Application'
$xl.Visible = $true   # set to $false for production

$wb = $xl.Workbooks.Open("C:\Documents and Settings\xe474109\Desktop\EXCEL FILES\testbook2.xlsx")
$ws = $wb.Sheets.Item(1)

$row = $ws.UsedRange.Rows.Count
while ( $ws.Cells.Item($row, 1).Value -ne $null ) {
  $PLACEHOLDER = $ws.Cells.Item($row, 1).Value

  #
  # do stuff with $PLACEHOLDER here
  #(I wanted to test this by just printing the $PLACEHOLDER value
  $PLACEHOLDER

  $row++
} 

$wb.Close()
$xl.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
4

2 に答える 2

0
cls

$csv = Import-csv -Path 'C:\test\csvStuff.csv'

foreach ($rec in $csv) {
  if ($rec.nameofyourcolumn -ne '') {
    & "c:\test\temporary\$($rec.nameofyourcolumn)"
  }
}
于 2013-07-29T16:58:48.890 に答える