У меня есть скрипт 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