배치 파일에서 파일 경로를 업데이트하는 날짜 공식

배치 파일에서 파일 경로를 업데이트하는 날짜 공식

내가 가지고 있는 월별 보고서에 대해 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"

관련 정보