윈 도 우 suk 님의 도움의로 해결한 파일을 다른곳에서 적용해 봣슴당.ㅎㅎ
2019.10.26 09:58
suk 님의 도움으로 배치파일 구성을 잘 해서 해결했습니당.ㅎㅎ
글서 다른곳에 적용을 해 봣슴다.ㅋ
@prompt $s
@color 1f
@cd /d %~dp0
@mode con cols=80 lines=1000
@setlocal enabledelayedexpansion
@echo 관리자권한 확인용 >%windir%\admin.confirm || @(
echo Set UAC = CreateObject^("Shell.Application"^) > "%tmp%\admin.vbs"
echo UAC.ShellExecute "%~0", "", "", "runas", 1 >> "%tmp%\admin.vbs"
"%tmp%\admin.vbs" & del "%tmp%\admin.vbs" & exit)
@del %windir%\admin.confirm
: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:\EasyDriver\ (robocopy %%a:\EasyDriver\EasyDrv7(Win10.x64 C:\EasyDriver\EasyDrv7(Win10.x64 /mir /zb /nfl /r:0& goto :next)
@echo.
@echo.
@echo.==================================================================================
@echo.
@echo.==================================================================================
@echo.
@exit
:next
pause
작업을 하다 보니 궁금한게 있어서 다시한번 suk 님게 문의 드립니당.ㅎ
원본폴더에 Easy7(Win10.x64) 요렁게 뒤에 괄호가 들어가 있으믄 파일이 실행이 안되더라고요.ㅠ
걍...Easy7(Win10.x64 요케 변경해서 작업하면 정상적으로 됩니다.ㅎㅎㅎ
suk 님 알려주신 내용을 참고하여 파일을 맹그러 봣슴당.ㅋㅋㅋ
댓글 [6]
-
suk 2019.10.26 10:23
-
후루꾸 2019.10.26 12:35
넵..고맙습니다.
:win7_32bit
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:\Wandrv7\ (robocopy %%a:\Wandrv7\EasyDrv7_Win7.x86 C:\Wandrv7\EasyDrv7_Win7.x86 /mir /zb /nfl /r:0& goto :next)
피이로 부팅해서 파일을 실행을 해보니 시스템 드라이브 문자가 변경되서 오류가 나네요.ㅠㅠ
-
suk 2019.10.26 13:15
처음 질문하실 때 윈도상이어서 C:으로 한 것입니다 [윈도를 C:으로 사용하지 않으시는 극소수분들도 있습니다만]
PE는 다른 운영체제이기 때문에 드라이브 문자들이 윈도와는 다를 수 있습니다
PE라고 하여도 상황이 여러가지 이기 때문에 [이런 변수들 때문에 복잡해집니다]
일단 컴퓨터에 설치된 윈도가 1개라고 가정하면 간단해집니다
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) do if exist %%a:\Wandrv7\ (set drv1=%%a& goto :next)
@echo.
@echo.
@echo.==================================================================================
@echo. 모든 드라이브에서 Wandrv7 폴더를 찾지 못 했습니다
@echo.==================================================================================
@echo.
@pause
@exit:next
for %%a in (C D E F G H I J K L M N O P Q R S T U V W Y Z) do if exist %%a:\Windows\ (set drv2=%%a& goto :next)
@echo.
@echo.
@echo.==================================================================================
@echo. 모든 드라이브에서 Windows 폴더를 찾지 못 했습니다
@echo.==================================================================================
@echo.
@pause
@exit:next
robocopy %drv1%:\Wandrv7\EasyDrv7_Win7.x86 %drv2%:\Wandrv7\EasyDrv7_Win7.x86 /mir /zb /nfl /r:0
그런데 이 게시물은 질문으로 옮겨야겠습니다.
-
후루꾸 2019.10.26 13:39
아고..제가 게시글을 잘못 올렸네요.ㅠㅠ 죄송합니당~
-
집앞의_큰나무 2019.10.26 10:25
큰 도움 받으셔서 뭔가를 성공했군요
기분이 좋을것 같습니다.
-
DarknessAngel 2019.10.26 17:39
낡은 Dos규격으론 특문이나 2바이트 제대로 처리 못한다고 보면 됩니다
파일이나 폴더 이름에 괄호가 있으면 bat 파일이 튕기는 일은 흔한 일입니다.
괄호는 배치파일의 기호로 사용되는 괄호와 혼동될 수 있기 때문에 문제가 될 수 있습니다.
파일이나 폴더 이름에 괄호는 전부 생략하시고 하시는 것이 좋으실 겁니다.
괄호를 1개만 남겨두셔도 괄호 닫기 기호와 연결이 되기 때문에 문제가 될 수 있습니다
파일이나 폴더 이름에 괄호를 사용하시려면 [ ] 이런 괄호는 배치 파일 기호가 아니라서 문제가 안 됩니다.
-> bat 파일 안에 기입한 폴더나 파일 이름만 문제가 됩니다. 실제 폴더나 파일에 괄호가 있다고 전부 문제가 되지는 않습니다