Eu tenho um script bat que converte o arquivo xlsx para conversão de arquivo csv. Enquanto executo o script em lote no prompt de comando, não recebo nenhum erro, ele converte corretamente e o arquivo csv é gerado no local. Mas enquanto eu corro o mesmo script bat do meu Jenkins, estou recebendo um erro 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
Alguém tem idéia por favor me ajude
My 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%
Liguei para o meu script em lote da parte Jenkins Build. Chamar meu scriptXLS2CSV.bat WI_non_cluster_server_list.xlsx
11
Qual é o código para Excel2csv.vbs? Além disso, como esse script está sendo chamado no lote?
—
precisa
Editado minha pergunta incluiu a minha bat
—
Narayana Boominathan
Portanto, com base nesse código, está dizendo que o arquivo do Excel está ausente ou bloqueado. Você deve, no mínimo, testar a presença do arquivo no vbscript.
—
precisa
Testei que o arquivo está presente nesse local, como disse anteriormente, ao executar o mesmo arquivo em lotes na minha linha de comando, não há erros e o arquivo csv é gerado.
—
Narayana Boominathan
Olha, tudo o que posso dizer é o que o código me diz. A linha que gera o erro está tentando abrir o arquivo do Excel para leitura. O erro indica que não é possível fazer isso porque o arquivo está ausente ou bloqueado. Só estou lhe dizendo que, como prática recomendada de codificação, se você tiver o teste de script para a presença do arquivo, saberá se o problema está ausente ou se o arquivo está sendo bloqueado.
—
precisa