소프트웨어 초보가 배치파일이 궁금해서 여쭤 봅니다...
2019.10.23 20:48
제가 배치파일을 이용하여 머좀 만들어 볼라구 하는데..넘 어렵네요.
@echo off
color 1F
:usb
for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do (
for /F "tokens=*" %%b in ('"dir /a:d /b "%%a:\CMI_DATA""') do (set usb=%%a&set folder=%%b& goto :next)
)
:next
for /F "tokens=*" %%a in ('"dir /a:-d /b /s "%usb%:\%folder%\*%win%.%bit%""') do set exe=%%a& goto :run
:run
md c:\cmi_data
copy
위 내용은 모든드라이브에서 cmi_data 라는 폴더를 검색하여 시스템 드라이브에 폴더를 만들어 win_64bit 혹은 win_32bit 폴더에 있는 파일이 복사가 되게끔 만들어 볼라고 하는디.ㅠㅠ
지가 초보라서 어케 하는지 잘 몰라서 고수분들의 도움을 받고자 합니다..
위에 처럼 배치파일을 구성하면 cmi_data 폴더만 깔금하게 생성 됩니다..ㅠㅠ
고수분들의 노하우를 알려주세요....
댓글 [12]
-
DarknessAngel 2019.10.24 08:06
-
후루꾸 2019.10.24 08:21
copy 다음에 명령어가 어떤건지.....ㅠㅠ
copy 찾은 드라이브 폴더 c:\cmi_data...
요렇게 하면 되는거 같은데....ㅠ
-
내꼬 2019.10.24 11:57 본문 스크립트 실행순서
1.usb
2.next
3.run
고로 cmi_data 폴더는 무조건 만들어지며, 해당 폴더가 있다면 있다고 나옵니다
-
jink.uk 2019.10.24 13:31
copy 명령어는 복사하려는 대상(원본)을 어디에 복사(대상)할지 지정해주어야 합니다.
아래는 copy 명령어의 도움말입니다.
하나 이상의 파일을 다른 위치로 복사합니다.
COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] 원본 [/A | /B]
[+ 원본 [/A | /B] [+ ...]] [대상 [/A | /B]]원본 복사할 파일을 지정합니다.
/A ASCII 텍스트 파일임을 나타냅니다.
/B 이진 파일임을 나타냅니다.
/D 대상 파일이 암호화 없이 만들어지도록 허용합니다.
대상 새 파일에 대한 디렉터리와/또는 파일 이름을 지정합니다.
/V 새 파일이 올바르게 기록되었는지 확인합니다.
/N 8.3 이름이 아닌 파일을 복사할 때, 짧은 파일 이름이 있으면 그 이름을 사용합니다.
/Y 이미 있는 대상 파일을 덮어쓸지를 확인하지 않습니다.
/-Y 이미 있는 대상 파일을 덮어쓸지 확인하기 위해 묻습니다.
/Z 다시 시작 모드에 있는 네트워크 파일을 복사합니다.
/L 원본이 기호화된 링크인 경우 원본 링크가 가리키는 실제 파일 대신 링크를 대상에 복사합니다./Y 스위치는 COPYCMD 환경 변수에 이미 지정되어 있습니다.
이 설정은 명령줄의 /-Y 스위치에 의해 무시될 수 있습니다. COPY 명령을 일괄 처리 스크립트에서 실행하지 않으면 기본적으로 이미 있는 파일을 덮어쓸지를 묻습니다.파일을 한 파일에 붙여 넣으려면 원본에 여러 파일을 지정하고 (대표 문자 또는 파일1+파일2+파일3 포맷을 사용하여) 대상에는 한 파일을 지정합니다.
-
후루꾸 2019.10.24 14:16
copy 다음에 찾은 드라이브에 폴더명 명령어가 어케 되는지.ㅠㅠ
copy .... C:\CMI_DATA 이렇게 구성되믄 되는데..중간에 사용될 명령어를 몰겟슴당..ㅠㅠ
-
suk 2019.10.24 17:17
정확한 상황은 모르지만, bat 파일로 만들어서 테스트해봤습니다
bat 파일에서 주된 내용입니다
:usb
for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do if exist %%a:\CMI_DATA\* (set usb=%%a& goto :next)
@echo.
@echo.
@echo.===============================================================
@echo. 모든 드라이브에서 CMI_DATA를 찾지 못 했습니다
@echo.===============================================================
@echo.
@pause
@exit:next
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=32bit) else (set bit=64bit)
for /F "tokens=*" %%a in ('dir /a:-d /b /s %usb%:\CMI_DATA\win_%bit%\') do set exe=%%a& goto :run@echo.
@echo.
@echo.===============================================================
@echo. %usb%:\CMI_DATA\win_%bit%\ 에서 파일을 찾지 못 했습니다
@echo.===============================================================
@echo.
@pause
@exit:run
if not exist C:\CMI_DATA\ md C:\CMI_DATA
copy /y "%exe%" C:\CMI_DATA\ -
후루꾸 2019.10.25 07:39
와우~~고맙습니다요..
문제는 파일들만 복사되고 폴더는 복사가 안되네요.ㅠㅠ (ex. win_%bit% 폴더에 파일과 폴더들이 많아서 다 복사하고 싶어요.ㅠ)
암튼 관심 가져 주셔서 고맙습니당~~~
-
suk 2019.10.25 08:20
네, 저도 폴더 복사인지, 파일 복사인지 애매했는데요. 질문에 exe 라고 되어 있어서 exe 파일만 복사하시는지 알았습니다
폴더는 xcopy로도 가능합니다만, 저는 예전부터 robocopy를 많이 사용했습니다.
그리고 cmd 구문을 좀 더 단순화 했습니다. 굳이 저렇게 몇단계로 할 필요없이 for 구문 1번으로 바로 가능합니다
테스트용이라서 새 폴더와 새 텍스트 파일로만 구성했습니다
하위 폴더의 파일까지 전부 복사됩니다
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=32bit) else (set bit=64bit)
for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D C B A) do if exist %%a:\CMI_DATA\win_%bit%\* (robocopy %%a:\CMI_DATA\win_%bit% C:\CMI_DATA /e /zb /ndl /r:0& goto :next)@echo.
@echo.
@echo.==================================================================================
@echo. 모든 드라이브에서 CMI_DATA\win_%bit% 폴더를 찾지 못 했습니다
@echo.==================================================================================
@echo.
@pause
@exit:next
pause
bat 파일의 주된 내용은 이상 입니다.
robocopy %%a:\CMI_DATA\win_%bit% C:\CMI_DATA /e /zb /ndl /r:0
여기서 원본 폴더와 완전히 같게 복사 하시려면 /e 대신 /mir 로 하시면 미러링 복사가 됩니다
미러링 [동기화] 기능은 xcopy에는 없습니다. 그리고 폴더와 파일이 너무 많은 경우는 화면에 파일 복사 과정이 나오는 것도
복사 시간에 영향을 주기 때문에 /nfl 옵션 추가하시면 화면에 파일 복사되는 과정은 생략되어서 시간 절약이 됩니다.
파일이 100 개 미만이라면 별 관계없습니다. 그리고 robocopy는 대상 폴더가 없으면 폴더가 만들어집니다.
- 윈도우 포럼의 cmd 구문 질문에 답변2-전체복사.bat 테스트 2019-10-25_080515.jpg (39.4KB)(0)
- 윈도우 포럼의 cmd 구문 질문에 답변2-전체복사.bat 테스트 2019-10-25_080540.jpg (277.7KB)(0)
- 윈도우 포럼의 cmd 구문 질문에 답변2-전체복사.bat 테스트 2019-10-25_080634.jpg (47.8KB)(0)
- 윈도우 포럼의 cmd 구문 질문에 답변2-전체복사.bat 테스트 2019-10-25_080650.jpg (20.1KB)(0)
- 윈도우 포럼의 cmd 구문 질문에 답변2-전체복사.bat (1.1KB)(24)
-
뚜세뚜람 2019.10.25 09:49
정보 감사 합니다.
죄송 하지만 아주 초보라서 배치파일을 응용을 하려고 하여도 할수 없어서요.
파일을 반대로 컴퓨터에서 반대로 USB로 복사을 하려고 합니다.
폴더안에 파일이 있습니다.
-
suk 2019.10.25 10:07
그렇게 막연하게 말씀하시면 저도 어렵습니다.
사실 처음에 질문하신 분도 그래서 제가 진작에 봤습니다만 답글을 달지 않았다가
댓글들을 보고 그나마 어떤 상황인지 감이 잡혀서 댓글을 쓴 것입니다
제가 반대로 어떤 상황인지 질문하는 일은 저도 하지 않습니다. 제가 질문하는 상황이 아니기 때문입니다.
사실 웬만하시면 직접 상위 폴더를 복사/붙여넣기 하시는 것이 낫습니다.
그렇게 직접 복사하시기 어려운 경우라면 스샷이든지, 설명이든지 더 자세히 상황을 설명해주셔야 합니다.
-
뚜세뚜람 2019.10.25 10:16
감사 합니다.
-
후루꾸 2019.10.25 18:05
suk님 덕분에 고민되던거 잘 해결했습니당 ㅋ
관심과 노하우를 알려 주셔서 고맙습니당~~~^^
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
» | 소프트웨어| 초보가 배치파일이 궁금해서 여쭤 봅니다... [12] | 후루꾸 | 671 | 10-23 |
81371 | 윈 도 우| 윈도우10 품질 업데이트 질문 드립니다 [2] | 디드 | 572 | 10-23 |
81370 | 하드웨어| 절전모드에서 빠져 나오지 못하는 증상. [7] | Rockeeter | 659 | 10-23 |
81369 | 기 타| 확률 잘 아시는 수잘알님들... [12] | windowsandromeda | 540 | 10-23 |
81368 | 윈 도 우| pe 뼈대 [4] | 기수 | 897 | 10-23 |
81367 | 윈 도 우| PE 업데이트? [2] | 래미언 | 556 | 10-23 |
81366 | 하드웨어| (하드웨어 고수님들)블루스택에서 외장 GPS 사용 방법 문의 | 수비니 | 312 | 10-23 |
81365 | 소프트웨어| 프리미어말고 영상편집 괜찮은거 없을까요?? [11] | 카니 | 665 | 10-23 |
81364 | 윈 도 우| [windows update]conexant - media - 7/3/2018 [1] | comnews | 333 | 10-23 |
81363 | 윈 도 우| 윈도우 소리 증폭 방법 문의 [6] | 솔모로 | 812 | 10-23 |
81362 | 소프트웨어| 크롬 오늘 업데이트후 탭창에 설명창 끄는법 없을까요. [4] | 건조한치는 | 468 | 10-23 |
81361 | 모 바 일| 모바일앱 관련 문의드립니다. [3] | 점돌이 | 193 | 10-23 |
81360 | 윈 도 우| 메모리 문의. [4] | 잔대가리 | 513 | 10-23 |
81359 | 소프트웨어| 한컴입력기 쉽게 없애는 방법 있을까요? [8] | 월드반 | 2029 | 10-22 |
81358 | 기 타| 고스트 강좌, 동영상 좀 받을수 없을까요? | 현우 | 225 | 10-22 |
81357 | 윈 도 우| 오피스2019 오류 [5] | 기수 | 800 | 10-22 |
81356 | 윈 도 우| uefi 설치하는 정확한 방법 문의 [5] | ksire | 713 | 10-22 |
81355 | 윈 도 우| 윈도우10 1903 버젼 질문 드립니다 [2] | xsnydersso | 309 | 10-22 |
81354 | 윈 도 우| 외장하드에 설치된 운영체제를 선택하는 방법 [3] | 깜냥 | 532 | 10-22 |
81353 | 윈 도 우| 동네수리점 윈도우 설치 질문 [8] | DSFDSA | 1695 | 10-22 |
copy명령이 제대로 안 되었으니 그런겁니다
대상과 목적지를 정확하게 지정해야 합니다