1) 변수의 내용에 대문자 만 포함되어 있는지 알려주는 기본 제공이 있습니까?2 배치 문자열 질문
2) 변수에 문자열이 있는지 확인하는 방법이 있습니까? 예를 들어 % PATH % 변수에 Ruby가 포함되어 있는지 확인하고 싶습니다.
1) 변수의 내용에 대문자 만 포함되어 있는지 알려주는 기본 제공이 있습니까?2 배치 문자열 질문
2) 변수에 문자열이 있는지 확인하는 방법이 있습니까? 예를 들어 % PATH % 변수에 Ruby가 포함되어 있는지 확인하고 싶습니다.
1 부인 경우는 findstr
입니다. 그 공백 출력되는 원인이되므로
> set xxokay=ABC
> set xxbad=AB1C
> echo %xxokay%|findstr /r "^[A-Z]*$" >nul:
> echo %errorlevel%
0
> echo %xxbad%|findstr /r "^[A-Z]*$" >nul:
> echo %errorlevel%
1
그것은 당신이 하지이 echo %xxokay%
및 파이프 문자 |
사이에 공간이 할이 경우 중요 : 당신은 errorlevel
와 함께 정규식 기능을 사용할 수 있습니다 당신의 받아 들일 수있는 문자 중 하나가 아닙니다. 제 2 부
, findstr
도 대답 (/i
당신이 원하는 것을 할 수있다 케이스를 무시입니다 - 경우가 일치해야하는 경우 오프두고) :
> set xxruby=somewhere;c:\ruby;somewhere_else
> set xxnoruby=somewhere;somewhere_else
> echo %xxruby%|findstr /i ruby >nul:
> echo %errorlevel%
0
> echo %xxnoruby%|findstr /i ruby >nul:
> echo %errorlevel%
1
을 그런 다음 사용할 수 있습니다
if %errorlevel%==1 goto :label
두 경우 모두 스크립트의 동작을 변경하십시오. 이 배치 솔루션 (cmd.exe를) 아니라, 쉽게 다른 기본으로하는이 이미, VBScript를를 사용
:ruby_check
echo %yourvar%|findstr /i ruby >nul:
if %errorlevel%==1 goto :ruby_check_not_found
:ruby_check_found
:: ruby was found
goto :ruby_check_end
:ruby_check_not_found:
:: ruby was NOT found
:ruby_check_end
:
예를 들어, 루비 검사에 대한 코드 세그먼트는 뭔가를 할 수 시스템에 설치되어 있어야합니다.
Set objArgs = WScript.Arguments
var=objArgs(0)
check=var
If check=UCase(var) Then
WScript.Echo "String contains all uppercase"
Else
WScript.Echo "String doesn't contain all uppercase"
End If
' to check string contains substring
mystring="This is my ruby string"
check="ruby"
If InStr(mystring,check)>0 Then
WScript.Echo "string contains ruby"
End If
myscript.vbs
로 파일 저장
및 문자열 조작이
C:\test>cscript //nologo myscript.vbs abC
String doesn't contain all uppercase
string contains ruby
C:\test>cscript //nologo myscript.vbs ABCD
String contains all uppercase
string contains ruby
사용하여 배치 (cmd.exe를)처럼 실행 당신이 절대적으로 제한하지 않는 한,하고 싶은 것이 마지막이다. 그렇지 않으면 작업에 더 적합한 도구를 사용하십시오.