의 내부 또는 외부 오류를주고있다이/번역 배치에 bash는 코드를 해석하는 나의 시도이다.
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set FILE_NAME=one_two_IMAGE_four
:: Set FILE_NAME=one_two_FUSION_CONFIGURATION_1_four
:: This replaces your awk
For /f "tokens=3 Delims=_" %%A in (
'echo:%File_Name%'
) Do Set Token3=%%A
:: Variable content is refered to by enclosing the var name in %
:: DelayedExpansion is neccessary because inside a (code block)
:: You have to use the exclamation mark instead of the percent then
If "%Token3%"=="IMAGE" (
Set F_NAME=!FILE_NAME:IMAGE=UCM!
) Else (
Set F_NAME=!FILE_NAME:FUSION_CONFIGURATION_1=UCM!
)
Echo FILE_NAME=%FILE_NAME%
Echo Token3 =%Token3%
Echo F_NAME =%F_NAME%
가
FILE_NAME=one_two_IMAGE_four
Token3 =IMAGE
F_NAME =one_two_UCM_four
FILE_NAME=one_two_FUSION_CONFIGURATION_1_four
Token3 =FUSION
F_NAME =one_two_UCM_four
EDIT이 행마다 수행 할 문자열에서 연장 .ZIP를 renove하기
출력 :
Set F_NAME=%F_NAME:.zip=%
For %%A in ("%F_NAME%") Do Set F_NAME=%%~nA
Set F_NAME=%F_NAME:~0,-4%
구문 중에라도 없으므로 배치 파일에서 실행할 수있는 명령을 원격으로 닫습니다. 명령에 대한 구문을 알고 싶다면 bash 프롬프트에서 명령과 동일한 작업을 수행하고 명령에 대한 도움말을 얻으십시오. 이 경우 : IF /?'변수의 명령 출력을 캡처하려면 'FOR/F' 명령을 사용하십시오. – Squashman
* * "code"*는 Windows BATCH 파일이 아닌 Linux/Unix 용 bash 스크립트와 유사합니다. 아마도 당신은'batch-file' 태그를 제거하고'bash' 태그를 적용해야한다고 생각합니다. –