소프트웨어 배치파일 문의드립니다 (파일 갯수 구하기)
2020.11.19 17:22
구글링해서 폴더내 전체 갯수는 구하는 것을 알아냈습니다.
=============
@echo on
SETLOCAL ENABLEDELAYEDEXPANSION
set count=0
for %%a in (*.exe) do set /a count+=1
echo !count!
==============
제가 궁금한것은 폴더내 100여개의 파일이 있는데, 파일이 설치될때 마다 아래와 같이 표기되는 방법은 어떻게 하면 될까요?
1.exe is installed. (1 of 100)
2.exe is installed. (2 of 100)
3.exe is installed. (3 of 100)
.
.
.
100.exe is installed (100 of 100)
댓글 [6]
-
히이이잌 2020.11.19 17:26
-
바이오스 2020.11.19 18:24
답변 감사합니다. 전체 갯수 (100)을 변수 처리 할 수 있을까요?
-
suk 2020.11.19 18:24
지난 질문 https://windowsforum.kr/qna/14667111 에 연결되는 것 같은데요
제가 그 때 올린 답변에 연결합니다
저 같은 경우는 전체 파일 갯수부터 계산하고, 카운트를 1개씩 올립니다
bat 파일 내용입니다.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
cd /d %~dp0
for %%a in (*.exe) do set /a all+=1
echo.
for %%a in (*.exe) do set /a count+=1& echo %%a is being installed...^(!count! of %all%^)& start /wait %%a /passive /norestart & echo %%a is installed successfully^^! ^(!count! of %all%^)& echo.
pause
테스트하기에 적당한 exe 파일이 없어서 exe 설치 부분은 echo 처리했습니다.
실제 설치를 해야 하기 때문에 본문에는 echo를 뺐습니다
-
바이오스 2020.11.19 18:34
댓글 다는 순간 게시글을 보았습니다. 며칠전 올렸던 질문에 연장 맞습니다^^
알려주신대로 따라해보니 잘 되네요. 감사합니다 ㅎㅎ
-
suk 2020.11.19 19:54
& 붙여서 전체를 1줄로 하는 것이 길어서 보기 불편하시면 ( )로 감싸서 & 를 지우시면 됩니다
exe 파일에 띄어쓰기가 된 경우를 감안하여 " "으로 감쌌습니다
@echo off
cd /d %~dp0
SETLOCAL ENABLEDELAYEDEXPANSION
for %%a in (*.exe) do set /a all+=1
echo.
for %%a in (*.exe) do (
set /a count+=1
echo "%%a" is being installed...^(!count! of %all%^)
start /wait "%%a" /passive /norestart
echo "%%a" is installed successfully^^! ^(!count! of %all%^)
echo.
)
pause
-
컨피그 2020.11.20 20:13
start /wait image.png /passive /norestart
이렇게 그림파일(.png)로 해보면 그림이 열리네요
start /wait "image.png" /passive /norestart
쌍따옴표로 감싸면 스위치가 틀렸다면서 오류나고요
뭐이런 이상한 경우가...
하나의 FOR 명령 안에 여러개의 명령이 수행되게 만드시려면, DO 다음에 수행할 명령들을 괄호로 묶어주시면 됩니다.
set count=0
for %%a in (*.exe) do (
start .... (설치명령)
set /a count+=1
echo exe is installed. (!count! of 100)
)