소프트웨어 배치파일 작성시 도움이필요합니다
2018.10.03 11:11
위에 명령어를 사용하여 드라이버명을 입력받으려고합니다
그런데 사람들마다 c라고입력하는분도있고 c:라고라는분도있을거같아 입력받은 변수에 :이 있는지없는지 판별하거나 혹은 자동으로 붙일방법이없을까요?
댓글 [7]
-
suk 2018.10.03 11:44
-
sikey 2018.10.03 12:54
감사합니다! 집에가는대로해봐야겟네요 ㅎㅎ -
sikey 2018.10.03 16:07
감사합니다! 집에와서 이제확인해보았는데 정말잘되는군요 ㅎㅎ
-
DarknessAngel 2018.10.03 12:46
조금 무식한 방법이지만 입력받은 변수를 A~Z까지 다 일일히 조건문으로 처리하는 방법도 있습니다아니면 첫글자만 잘라내서 받는 방법도 있습니다 (A~Z가 아닌 오타(예 : 한영을 잊어버리거나, 오타로 특문등을 입력)를 방지하기 위해서 두가지 병합해서 첫글자 자른후 이게 A~Z에 일치하는지 비교하는 방식으로 입력받으시길 추천합니다)suk님이 수정하셨군요 (저런 시스템에 민감한 스크립트 (저런거 원하시면 주로 OS설치나 파티션 조작등이 대부분의 목적이라 추정됩니다) 작성시 입력 필터 제대로 안 해두면 어떤 문제 일으킬지 아무도 모릅니다)
-
sikey 2018.10.03 16:06
넵 신경써주셔서 감사합니다.
제가지금만드려고하는건 사용자에게 미리 백업을하도록 고지를 하고있지만
자주안하는 위치들을 자동으로 백업할수있는 보완대책입니다 ㅎㅎ
매번 일일히 하자니 손이많이가고 쉬는날 만들어볼까해서 검색하다가
도저히 제능력으론 안되서 도움을 청하게 되었습니다. ㅎㅎ
-
메리아 2018.10.03 17:42 -
-
DarknessAngel 2018.10.03 19:01
파워셀은 bash등을 본받아서 꽤 다양한 기능을 처리 가능하고, 개선되었고, vbs는 규격이 윈도 시대 넘어와서 나온거지만, cmd경우는 과거 dos시절에 쓰던 bat규격을 그대로 이어받은 노답스러운 사항을 자랑합니다
뭔가 조금만 복잡한거 다룰려면 머리 썩이게되고, 가장 골치아픈건 동일한걸 C&P한다음 변수 내용물만 바꾸어도 안 되거나하는 괴랄함을 보여줍니다 (여기까지 해버리면 문법등이 왜 있는지도 모르겠음)
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
» | 소프트웨어| 배치파일 작성시 도움이필요합니다 [7] | sikey | 217 | 10-03 |
75982 | 윈 도 우| 윈도우 각종 창 투명하게... [2] | 가랑비 | 484 | 10-03 |
75981 | 윈 도 우| 윈도우10 업데이트후 프린터 인식 못하는 이유 [7] | 부다 | 3248 | 10-03 |
75980 | 소프트웨어| truecrypt, veracrypt 잘 아시는 분 (3테라 외장하드 암호화) [3] | tbvpfm | 676 | 10-02 |
75979 | 윈 도 우| 탐색기 큰아이콘 오류 [2] | dj247 | 275 | 10-02 |
75978 | 윈 도 우| PC에 설치된 .net framework 버전 확인은 어떻게 하나요? [4] | 바이오스 | 649 | 10-02 |
75977 | 윈 도 우| SUK님의 윈7 통합본 지금도 나오는지요? [2] | Holloga | 618 | 10-02 |
75976 | 기 타| HDD인식 안되 환장하고 미치겠습니다.. [1] | 알미뜽 | 870 | 10-02 |
75975 | 소프트웨어| WinNTSetup 제작시 0xc000000f 에러 메세지 발생 | 연향 | 350 | 10-02 |
75974 | 윈 도 우| RAID 구성 외장하드 복사 오류 [1] | Kakaka999 | 272 | 10-02 |
75973 | 윈 도 우| 윈도우 부팅 에러 [2] | 클리엔테스 | 430 | 10-02 |
75972 | 윈 도 우| 윈도우10 언어변경.. [3] | 뚜릅 | 933 | 10-02 |
75971 | 소프트웨어| everything에서 usb가 검색이 안 됩니다 [2] | ksire | 765 | 10-02 |
75970 | 기 타| 가정용 으로 저렴한 혈압계 [6] | 허니 | 888 | 10-02 |
75969 | 소프트웨어| 초보가 여쭙니다;버츄얼박스 [2] | sokool | 364 | 10-02 |
75968 | 서버 / IT| 서버2019평가판 암호어떻게넣나요? [6] | jopd | 448 | 10-02 |
75967 | 소프트웨어| 앱 [2] | 거스 | 314 | 10-02 |
75966 | 소프트웨어| 크롬 플래시 요청이 자꾸 뜨는경우... (허용한게 저장안됨) [3] | shy1911 | 571 | 10-02 |
75965 | 윈 도 우| 윈도우 10만 설치된다는 노트북에 윈도우 7깔기... [11] | 현민지 | 1207 | 10-01 |
75964 | 윈 도 우| 바탕화면만 영어(desktop)로 나와요 [9] | Dr.Nick | 649 | 10-01 |
:name
set /p name=
@if "%name%"=="" goto :name
@echo.%name% | find ":" >nul || set name=%name%:
@echo.name은 "%name%" 입니다
pause
이렇게 하시면 될 겁니다. : 이 없으면 자동으로 : 을 붙이는 방식입니다.
테스트 해보시고...마지막에 2줄 @echo.name은 "%name%" 입니다 와 pause는 삭제하시면 될 겁니다
그런데, 다음 방식이 더 완벽할 겁니다. d: 대신에 d; 처럼 오타를 쓸 수도 있는데요. 위에 방식은 이걸 걸러낼 수 없습니다
다음 방식은 처음 문자에 무조건 :을 붙여줍니다. 그래서 뒤에 오타를 쓴 경우도 오류가 생기지 않습니다. 저도 방금 생각한 것입니다
:name
set /p name=
@if "%name%"=="" goto :name
for /f "tokens=*" %%a in ('"echo %name:~0,1%"') do set name=%%a:
@echo.name은 "%name%" 입니다
pause
드라이브 명에 영어가 아닌 한글 입력하시는 분에게는 대책이 없습니다만...저도 사실 생각은 했지만 점점 복잡해져서 생략했습니다
예전에 제가 올린 bat 파일 보신 분들이 있을 지 모릅니다만, a부터 z까지 확인했습니다.
3탄, 한글 또는 이상한 문자 입력하시는 분들을 위하여...
:name
set /p name=
@if "%name%"=="" goto :name
@for /f "tokens=*" %%a in ('"echo %name:~0,1%"') do @set name=%%a:
@if /i not "%name%"=="A:" if /i not "%name%"=="B:" if /i not "%name%"=="C:" if /i not "%name%"=="D:" if /i not "%name%"=="E:" if /i not "%name%"=="F:" if /i not "%name%"=="G:" if /i not "%name%"=="H:" if /i not "%name%"=="I:" if /i not "%name%"=="J:" if /i not "%name%"=="K:" if /i not "%name%"=="L:" if /i not "%name%"=="M:" if /i not "%name%"=="N:" if /i not "%name%"=="O:" if /i not "%name%"=="P:" if /i not "%name%"=="Q:" if /i not "%name%"=="R:" if /i not "%name%"=="S:" if /i not "%name%"=="T:" if /i not "%name%"=="U:" if /i not "%name%"=="V:" if /i not "%name%"=="W:" if /i not "%name%"=="X:" if /i not "%name%"=="Y:" if /i not "%name%"=="Z:" goto :name
@echo.name은 "%name%" 입니다
pause
대/소문자는 관계없습니다. if /i not 에서 /i가 대/소문자 가리지 않는 옵션입니다.