Я сталкиваюсь с очень странным поведением моего скрипта Powershell. Я получаю значения из документа PDF через Word как ComObject. Получение значений работает нормально и это не проблема, но как только я пытаюсь объединить две переменные, которые я получил из документа, после объединения их одна из них отсутствует. Сначала я подозревал, что это была проблема с подчеркиванием, но после опробования всех возможных форм экранирования, таких как `_ или $ {variable} _ и даже замены его другими символами, такими как пробел, у меня все еще остается та же проблема ,
Я могу отображать переменные самостоятельно, и они возвращают правильное значение, но после объединения я получаю очень странное поведение.
$filepath = "C:\Users\xxxx\Desktop\all_spools\"
$wd = New-Object -ComObject Word.Application
$wd.Visible = $false
$files = Get-ChildItem -path $filepath
foreach($file in $files) {
$doc = $wd.Documents.Open($file.FullName)
if ($doc.tables(1).rows.count -eq 7) {
$docnum = $doc.tables(1).Columns(2).cells(2).Range.Text
$intdocarr = $doc.tables(1).Columns(2).cells(7).Range.Text
$intdocnum = $intdocarr.split(" ")
$finalintdocnum = $intdocnum | Select-Object -first 1
$doc.Close()
}
else {
$docnum = $doc.tables(1).Columns(2).cells(2).Range.Text
$intdocarr = $doc.tables(1).Columns(2).cells(8).Range.Text
$intdocnum = $intdocarr.split(" ")
$finalintdocnum = $intdocnum | Select-Object -first 1
$doc.Close()
}
$filename = "${docnum}_$finalintdocnum.pdf"
$filename
}
$wd.Quit()
Мой ожидаемый вывод будет что-то вроде "90004234_74503423.pdf", но на самом деле я получаю "_74503424.pdf". Иногда наугад он становится "_74503423.pdf90004234", что невозможно воспроизвести. Я немного потерян.
Когда переменная $ docnum используется для переименования файла, я получаю сообщение об ошибке с недопустимыми символами в пути, я также пытаюсь удалить все и вывести только числа.
У меня вопрос, я что-то упустил? Я не могу понять, почему это не будет работать.