
"temp"라는 이름의 폴더가 여러 개 있고 이를 찾을 수 있지만 응용 프로그램을 실행하면 첫 번째 인스턴스만 표시됩니다. 다른 사람들에게 보여주기 위해서는 어떻게 해야 할까요?
@echo off
for /d /r "c:\" %%i in (temp) do @if exist "%%i" set path=%%i
echo %path%
pause :: Pause the app.
답변1
다른 사람들에게 보여주기 위해서는 어떻게 해야 할까요?
echo
루프 내부 for
와 테스트 내부를 수행해야 합니다. 그렇지 않으면 마지막 일치 if
만 수행하게 됩니다 .echo
게다가:
path
변수로 사용하지 않겠습니다 (PATH
이미 정의된 환경 변수입니다).- 대신 변수의 이름을 지정
_somename
하십시오(선행은_
이름이 기존 환경 변수와 충돌하는 것을 방지합니다). setlocal
변수가 상위 명령 프롬프트로 유출되는 것을 막는 데 사용하는 것이 좋습니다 .- 루프를 돌 때마다
set setlocal enabledelayedexpansion
업데이트된 값이 수정되도록 사용해야 합니다 .echo
다음 배치 파일을 시도해 보십시오.
@echo off
setlocal
setlocal enabledelayedexpansion
@echo off
for /d /r "c:\" %%i in (temp) do (
@if exist "%%i" (
@set _variable=%%i
@echo !_variable!
)
)
endlocal
추가 자료
- Windows CMD 명령줄의 AZ 인덱스- Windows cmd 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
- 세트로컬- 배치 파일에서 환경 변수의 가시성을 제어하는 옵션을 설정합니다.
답변2
한 번에 하나씩 방문하는 대신 목록만 나열하려면 다음 명령을 사용하세요.
cd \
dir temp /a:d /b /s > "%USERPROFILE%\Desktop\tempdirs.txt"
start "" "%USERPROFILE%\Desktop\tempdirs.txt"
이를 분석하려면 다음을 수행하십시오.
- 드라이브 루트로 이동합니다(이 명령은 한 번에 하나의 드라이브만 검색합니다).
dir
"temp"라는 항목을 찾으려면 명령 을 사용하십시오 .- 항목에 "디렉토리" 속성(즉, 폴더)이 있어야 합니다.
- 파일(또는 이 경우 폴더) 이름만 "기본" 형식으로 출력을 표시합니다.
- 현재 디렉터리에서 시작하고 모든 하위 디렉터리도 확인합니다(이것이 드라이브 루트에서 명령을 실행한 이유입니다).
- 출력을 파일로 리디렉션합니다(나중에 모두 읽기 쉽도록).
- 이 파일을 사용자 프로필 아래의 데스크탑 폴더에 넣으세요(
%USERPROFILE%
와 같이 프로필 경로로 확장됨C:\Users\username
). - 방금 작성한 파일을 기본 .txt 편집기(일반적으로 메모장)에서 엽니다.
내 컴퓨터에서 다음 명령을 실행한 결과 예:
C:\$Recycle.Bin\S-1-5-21-1498554065-3975735064-3637327715-1001\$RBC5Q5G\Temp C:\KDE\Temp C:\Program Files (x86)\Android\android-sdk\temp C:\ProgramData\Microsoft\IdentityCRL\production\temp C:\ProgramData\Microsoft\RAC\Temp C:\Users\All Users\Microsoft\IdentityCRL\production\temp C:\Users\All Users\Microsoft\RAC\Temp C:\Users\cbhacking\AppData\Local\Temp C:\Users\cbhacking\AppData\Local\Google\Chrome\User Data\Default\Extensions\Temp C:\Users\cbhacking\AppData\Local\Microsoft\MSOIdentityCRL\ 프로덕션\임시 C:\Users\cbhacking\AppData\Local\Microsoft\VisualStudio\14.0\SyncSettings\1733649840\Temp C:\Users\cbhacking\AppData\Local\Microsoft\VisualStudio\vshub\Settings\SyncSettings\1206173302\Temp