윈 도 우 배치파일 질문 입니다.
2018.03.03 09:07
특정폴더에 압축풀기 배치 파일을 넣어놓고
평시에는 압축파일로 존재 시키다가 난국엔 7-ZIP을 이용 하여 타이밍 맞게
필요할때 배치파일을 연결 하여 폴더내에 Zip 파일을 그폴더안에 압축을 풀려고 하는경우 입니다.
현재 존재 하는 배치 파일로 압축은 잘풀리는데 경로지정을 정상으로 못해줘서 CMD창에 잘못되었음을 알려주네요
암튼 현재 원하는바대로 압축은 정상으로 잘풀립니다만, 단지 잘못됬다고 CMD가 거부는 안하지만 불만이 많네요
ufolder 경로를 어떻게 써주면 될지요?
파일 위치는
Recovery Partition\SET\ 입니다.
@ echo off
::SET /P ufolder ????????
::FOR /R "%ufolder%" %%I IN (*.zip *.rar) DO "C:\Program Files\7-Zip\7z.exe"
CD /D %1
FOR /R %%I IN (*.zip *.rar) DO "C:\Program Files\7-Zip\7z.exe" x "%%I" -aou -o"%%~dpI\*" & del /F "%%I"
댓글 [6]
-
히이이잌 2018.03.03 12:48
-
집앞의_큰나무 2018.03.03 13:21
아이쿠
일단 감사 합니다ㆍ
이답글을 잘 적어두고
실행 해보겠습니다ㆍ
글을 주셔서 감사 합니다ㆍ
-
집앞의_큰나무 2018.03.03 22:17
히이이잌님, 잘됩니다.
CD /D %1 부분을 삭제 하고나니 잘됩니다.
그걸 경로 지정을 잘못해서 그런줄로만, 알았으니. 애구
감사 합니다.
-
flower3 2018.03.03 13:12
하이이잌님 인수 처리 부분은 잘 설명해주시네요,
배치 파일 단순 실행 목적이면 주석 처리된 부분 무시하고 아래 처럼만 작성하여 사용하시면 될 것 같습니다.
CD /D %~dp0
FOR %%I IN (*.7z *.zip *.rar) DO "C:\Program Files\7-Zip\7z.exe" x "%%I" -aou -o"%~dp0\*"& del /F "%%I" -
집앞의_큰나무 2018.03.03 13:23
우왕
플라워님 안녕 하세요
글을 적어 주셔서 감사하고
지금은 밖이라서 복사해뒀다가 . 감사히 활용 하겠습니다.
글을 주셔서 감사 해요,
-
집앞의_큰나무 2018.03.03 22:18
플라워님.
위의 명령어로도 너무너무 잘되어서 원하던 작업을 할 수 있게 됬습니다.
감사 합니다.
오류 자체는
CD /D %1
때문에 뜨는걸로 보입니다.
변수 %1 는 배치파일 내에서 지정되는 변수가 아니라, 배치파일을 실행시킬때 적은 매개변수를 불러오는것입니다.
즉 배치파일의 이름이 test.cmd 고,
배치파일을 실행시킬때 call test.cmd variable 이라는 명령으로 실행시켰을 경우
echo %1 의 결과가 variable이 되는 식입니다.
즉, 배치파일 안에서 %1에 대한 정보가 없으니까 에러가 뜨는걸로 보여요.
나머지 명령은 ::로 주석처리를 해 버리셔서 작동하지 않고,
실질적으로 작동하는 명령은 맨 아랫줄 한개네요.
배치파일 내에서 지정한 변수를 불러올때는 %를 앞뒤로 붙이셔야합니다.
즉, set variable=test
echo %variable% 의 결과값이 test가 되는것이죠.
set /p 명령은 배치파일 내부에서 사용자의 명령을 직접 받은 다음, 입력받은 값을 변수로 지정하기 위해 사용합니다.
그냥 경로를 지정해놓고 자동으로 처리되길 원하신다면 set /p가 아니라 set을 쓰셔야합니다.
set /p 명령을 통해 직접 변수를 입력받고 싶다면,
set /p (변수명)=
또는
set /p (변수명)=표시할문구
형태로 쓰셔야합니다.
현재 캡쳐하신 배치파일 화면에서 %ufolder%라는 변수는 아얘 사용되질 않았기 때문에, 이 부분에 대해선 말씀드릴게 없네요.
명령 앞에 :: 가 붙으면, '주석'이 되어 코드가 실행되지 않게 됩니다.