Tengo un script de murciélago que convierte el archivo xlsx a la conversión de archivos csv. Mientras ejecuto el script por lotes desde el símbolo del sistema, no recibo ningún error, se convierte correctamente y el archivo csv se genera en la ubicación. Pero mientras ejecuto el mismo script de murciélago de mi Jenkins, obtengo un error como
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
¿Alguien tiene idea por favor ayuda
Mi 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%
Llamé a mi script por lotes de Jenkins Build parte. Llama mi guionXLS2CSV.bat WI_non_cluster_server_list.xlsx
batch-file
vbscript
jenkins
Narayana Boominathan
fuente
fuente
1
¿Cuál es el código para Excel2csv.vbs? Además, ¿cómo se llama ese script en el lote?
EBGreen
Editado mi pregunta incluido mi bat
Narayana Boominathan
Entonces, según ese código, dice que falta el archivo de Excel o está bloqueado. Como mínimo, debe comprobar la presencia del archivo en el vbscript.
EBGreen
He probado que el archivo está presente en esa ubicación, como dije antes mientras ejecutaba el mismo archivo por lotes en mi línea de comando, no tiene errores y se genera el archivo csv.
Narayana Boominathan
Mira, todo lo que puedo decirte es lo que me dice el código. La línea que genera el error está intentando abrir el archivo de Excel para leer. El error indica que no puede hacer esto porque falta el archivo o está bloqueado. Solo le digo que, como práctica recomendada de codificación, si tiene la prueba de secuencia de comandos para la presencia del archivo, sabrá si el problema es la falta del archivo o si el archivo está bloqueado.
EBGreen