我正在創建一個對Excel文件執行某些操作的函數。 Excel文件列表作爲一個名爲$excelFiles
的數組傳遞到函數中。下面顯示的代碼正在進行中(它尚未完成所有打算執行的操作)。此代碼,因爲到目前爲止寫的,看來是失敗的,因爲在$excelFile
舉行的字符串設定$wb
變量(嵌套foreach
前右)周圍沒有引號:向來自數組的變量添加雙引號
Function CovertExcelFileToTextFiles ($excelFiles)
{
# create an Excel application object (fire off Excel in the background)
$excelApp = New-Object -ComObject Excel.Application
$excelApp.Visible = $false
$excelApp.DisplayAlerts = $false
# get first 3 letters of each file's name
foreach ($excelFile in $excelFiles)
{
$name = Split-Path $excelFile.FullName -Leaf #get filename only from full path
$prefix = $name.Substring(0,3) #get first 3 letters of filename
#look at contents of this variable
$excelFile
$wb = $excelApp.Workbooks.Open($excelFile)
foreach ($ws in $wb.Worksheets)
{
$n = $prefix + "_"+ $ws.Name
$n
}
}
$excelApp.Quit()
}
我懷疑問題的原因是缺少引號是因爲代碼在$wb
設置爲硬編碼文件路徑時有效。
我很難搞清楚如何在變量周圍加上雙引號來提供設置爲$wb
的行。我試過"$excelFile"
,編輯器在它下面放了一條紅色的波浪線,所以顯然這是不允許的。我也嘗試創建一個新變量,並用"$excelFile"
填充該變量,然後將其插入$wb
行中的括號中。這也會在控制檯中導致錯誤。雙引號如何在$excelFile
左右?
是的,它是一個對象。 '$ excelFile.FullName'解決了它! – knot22
你如何做一個內聯代碼片段? – knot22
@ knot22請參閱我的編輯故障排除提示,這將幫助您在其他情況下找出這些問題。 – briantist