우리는 Jenkins를 CI 도구로 사용하고 있습니다. 현재 필자는 메모장 파일 (개발자가 작성한)에서 빌드 값을 가져온 다음 빌드 값을 폴더로 사용하여 네트워크 드라이브에 복사하는 배치 파일을 작성했습니다.배치 파일을 통해 조건부 하위 폴더를 만드는 방법은 무엇입니까?
배치 파일은 아래에 언급
for /f "tokens=2" %%i in ('findstr Build "C:\Program Files (x86)\Jenkins\jobs\**\build.txt"') do set Build=%%i
set Build=%Build:'=%
if not exist "\%Build%\" mkdir "%Build%\"
내 동기는 이제 메모장의 값이이 폴더를 생성하지 않습니다 6.1 6.A, 소수점 이하 즉 아무것도이지만, 그것을 배치하는 경우이다 6 하위 폴더에. 또는 값이 꽉 찼 으면 상위 폴더가 만들어집니다.
빌드 번호를 얻을 수있는 텍스트 파일은 아래에 나와 있습니다.
#define MyAppVersion '4.0.0.0'
#define MyFullAppVersion '4.1.0.0'
#define BuildNumber '81'
"빌드 번호"에 입력 된 값을 기준으로 폴더를 만들어야합니다. 값이 십진수이면 하위 폴더 내에 만들어야하며, 그렇지 않으면 기본 폴더 만 있어야합니다.
아래 입력을 통해이 파일을 생성하기 위해 배치 파일을 만들었지 만 작동하지 않았습니다.
for /f "tokens=2" %%i in ('findstr Build "C:\Folder Check\logs\build.txt"') do set Build=%%i
set Build=%Build:'=%
for /F "tokens=2""delims=." %%j in ('findstr Build "C:\Folder Check\logs\build.txt"') do set "sub=%%j"
if exist "\\network\%Version%\%Build%\" mkdir "\\network\%Build%\%sub%%"
if not exist "\\network\%Version%\%Build%\" mkdir "\\network\%Version%\%Build%\"
if exist "\\network\%Version%\%Build%\%sub%%j" XCOPY /y "C:\Program Files (x86)\Notepad++\readme.txt" "\\network\%Version%\%Build%\%sub%\" /E /S
if not exist "\\172.19.0.4\Departement$\Development\Development RCX\RCX_M02_CSP\INTERNAL RELEASES\CI\%Version%\%Build%\%sub%%" XCOPY /y "C:\Program Files (x86)\Notepad++\readme.txt" "\\network\%Version%\%Build%\" /E /S
모든 도움을 주실 수 있습니다. 더 때문에, 또한 내가 일반적으로 권장 하나 인 인용 set
구문을 살펴보십시오
for /F "delims=." %%j in ("%Build%") do set "Build=%%j"
:
"메모장 파일"은 무엇입니까? * 텍스트 파일 *입니다. 맞습니까? – aschipfl
텍스트 파일입니다. 이 메모장 파일에 작성된 # define MyAppVersion '4.0.0.0' #define MyFullAppVersion '4.1.0.0' #define BuildNumber '4'. for 명령을 사용하여 개발자가 언급 한 값을 얻습니다. – writerrajiv
질문에 텍스트 샘플을 포함 시키십시오! – aschipfl