그래서 이것이 드라이브에 파일 목록을 생성한다는 것을 알고 있습니다.
SET /P drive=Enter drive letter:
tree %drive%: /a > "C:\Drivelists\%listname%.txt"
그러나 해당 목록 이름을 대체하기 위해 드라이브 이름을 자동으로 얻는 방법을 모르겠습니다. 나는 이것이 적어도 나에게 이름을 준다는 것을 안다.
wmic logicaldisk where name="%drive%:" get volumename
그러나 나는 어떻게 든 거기에서 그것을 얻을 수 있는지 또는 더 좋은 방법이 있는지 모르겠습니다. 나는 그것이 쉬운 작업이라고 생각하지만 여기서 중요한 요소를 알지 못합니다. 제안?
답변
변수를 드라이브 볼륨 이름으로 설정하려면 어떻게합니까?
다음 배치 파일은 for /f
명령을 사용하여이를 수행하는 방법을 보여줍니다 .
@echo off
setlocal
setlocal enabledelayedexpansion
set /p _drive=Enter drive letter:
for /f "usebackq skip=1" %%i in (`wmic logicaldisk where name^="%_drive%:" get volumename`) do (
set _volume=%%i
goto :done
)
:done
@echo %_volume%
tree %_drive%: /a > "C:\Drivelists\%_volume%.txt"
endlocal
노트:
skip=1
wmic
헤더 행 을 건너 뛰는 데 사용됩니다 .goto :done
wmic
여분의 빈 줄 을 건너 뛰는 데 사용됩니다 .C:\Drivelists\
이미 존재해야합니다.- 모든 드라이브에 볼륨 이름이있는 것은 아닙니다.
추가 자료
- Windows CMD 명령 행의 AZ 색인 -Windows cmd 행과 관련된 모든 것에 대한 훌륭한 참조 자료.
- for / f- 다른 명령의 결과에 대한 루프 명령.
- set -CMD 환경 변수를 표시, 설정 또는 제거합니다. SET로 변경 한 내용은 현재 CMD 세션 동안 만 유지됩니다.
- 트리 – 그래픽 트리로 그래픽 tree.Display로 드라이브 또는 경로의 폴더 구조를 드라이브 또는 경로의 폴더 구조를 표시합니다.
- wmic -Windows 관리 인스 트루먼 테이션 명령.