У меня есть скрипт bat, который преобразует файл xlsx в формат csv. Когда я запускаю пакетный скрипт из командной строки, я не получаю никакой ошибки, он конвертируется правильно, и файл CSV генерируется на месте. Но пока я запускаю тот же сценарий летучей мыши из моего Jenkins, я получаю сообщение об ошибке
C:\Users\SVCT-WI-Jenkins\Desktop\Post_Patching\Mapping_Server\Excel2csv.vbs(9, 1) Microsoft Excel: Microsoft Excel cannot access the file 'C:\Users\SVCT-WI-Jenkins\Desktop\Post_Patching\Mapping_Server\WI_non_cluster_server_list.xlsx'. There are several possible reasons:
The file name or path does not exist.
The file is being used by another program.
The workbook you are trying to save has the same name as a currently open workbook
Кто-нибудь есть идея, пожалуйста, помогите
Мой XLS2CSV.bat
::XLS2CSV.bat <xlsx_file> [csv_file_name]
REM @echo off&
setlocal
if "%~1"=="" echo(Excel file input missing...&goto:eof
if not exist "%~dp0excel2csv.vbs" (
(
echo Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
echo src_file = objFSO.GetAbsolutePathName^(Wscript.Arguments.Item^(0^)^)
echo dest_file = objFSO.GetAbsolutePathName^(WScript.Arguments.Item^(1^)^)
echo Dim oExcel
echo Set oExcel = CreateObject^("Excel.Application"^)
echo oExcel.DisplayAlerts = FALSE
echo oExcel.Interactive = FALSE
echo Dim oBook
echo Set oBook = oExcel.Workbooks.Open^(src_file, 0 , TRUE^)
echo Set objWorksheet = oExcel.Worksheets^(1^)
echo objWorksheet.Activate
echo oBook.SaveAs dest_file, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, TRUE
echo oBook.Close False
echo Set objWorksheet = Nothing
echo set oBook = Nothing
echo oExcel.Quit
echo set oExcel = Nothing
)>>"excel2csv.vbs"
)
if "%~2"=="" set "outfile=%~dpn1.csv" else set "Outfile=%~2"
"C:\Windows\System32\cscript.exe" %~dp0Excel2csv.vbs "C:\Program Files (x86)\Jenkins\workspace\test\Post_Patching\Mapping_Server\%~1" "%Outfile%"
echo %errorlevel%
exit/b %errorlevel%
Я позвонил в мой пакетный сценарий из части Jenkins Build. Назови мой сценарийXLS2CSV.bat WI_non_cluster_server_list.xlsx
batch-file
vbscript
jenkins
Нараяна Боминатан
источник
источник
1
Какой код для Excel2csv.vbs? Кроме того, как этот сценарий вызывается в пакете?
EBGreen
Отредактированный мой Вопрос включил мой файл летучей мыши
Нараяна Боминэтан
Таким образом, основываясь на этом коде, он говорит, что файл Excel либо отсутствует, либо заблокирован. Вы должны по крайней мере проверить наличие файла в VBScript.
EBGreen
Я проверил, что файл находится в этом месте, как я уже говорил ранее, при запуске того же командного файла в моей командной строке, он не содержит ошибок, и создается файл CSV.
Нараяна Боминатан
Слушай, все, что я могу тебе сказать, это то, что говорит мне код. Строка, которая генерирует ошибку, пытается открыть файл Excel для чтения. Ошибка указывает, что это не может сделать это, потому что файл отсутствует или заблокирован. Я просто говорю вам, что в качестве наилучшей практики кодирования, если у вас есть тест сценария на наличие файла, вы бы знали, если проблема в том, что файл отсутствует или это файл, который заблокирован.
EBGreen