내가 가지고 있는 월별 보고서에 대해 Excel 파일 세트를 .xls에서 .xlsx로 변환하는 배치 파일을 작성하려고 합니다.
이것이 내가 현재 가지고 있는 것입니다:
"C:\Program Files (x86)\Microsoft Office\Office14\excelcnv.exe" -oice "H:\File Path\2018\Support\03 March\Other\03 Export.xls" "H:\File Path\2018\Support\03 March\Other\03 Export.xlsx"
파일 경로에서 월을 변경하지 않고도 이 작업을 실행할 수 있기를 원합니다. 이는 다음과 같습니다.
H:\File Path\2018\Support\03 March\Other
다음 달에 실행하면 3월 3일인 곳에 "4월 4일"이 자동으로 들어가도록 만들고 싶습니다. 파일 경로에도 2018을 채울 수 있으면 좋을 것 같습니다. 배치 파일에서도 가능합니까?
감사해요!
답변1
:: Q:\Test\2018\04\12\SU1313056.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
:: Get date in a locale/user-settings independent format
for /f "tokens=1-3 delims=.+-" %%A in (
'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set _DT=%%A
Set "yy=%_DT:~0,4%"&Set "MM=%_DT:~4,2%"&Set "dd=%_DT:~6,2%"
:: Build MonthName[01..12] array
Set i=100&Set "MonthName= January February March April May June July August September October November December"
Set "MonthName=%MonthName: ="&Set /a i+=1&Set "MonthName[!i:~-2!]=%"
:: Set MonthName
Set "Excel=C:\Program Files (x86)\Microsoft Office\Office14\excelcnv.exe"
Set "Src=H:\File Path\%yy%\Support\%MM% !MonthName[%MM%]!\Other\%MM% Export.xls"
Set "Dst=%Src%x"
:: Show command
Echo "%Excel%" -oice^^
Echo "%Src%" ^^
Echo "%Dst%"
If Not exist "%Excel%" (Echo Can't find "%Excel%" & Pause & Exit /B 1)
If Not exist "%Src%" (Echo Can't find "%Src%" & Pause & Exit /B 1)
::DoIt
"%Excel%" -oice "%Src%" "%Dst%"
샘플 출력:
"C:\Program Files (x86)\Microsoft Office\Office14\excelcnv.exe" -oice^
"H:\파일 경로\2018\Support\04 April\Other\04 내보내기.xls" ^
"H:\파일 경로 \2018\지원\04 4월\기타\04 내보내기.xlsx"
"C:\Program Files (x86)\Microsoft Office\Office14\excelcnv.exe"를 찾을 수 없습니다
"H:\파일 경로\2018 \지원\04 4월\기타\04 내보내기.xls"