所以,我知道这会创建驱动器中的文件列表:
SET /P drive=Enter drive letter:
tree %drive%: /a > "C:\Drivelists\%listname%.txt"
但我不知道如何自动获取驱动器名称来替换该列表名称。我知道这个至少给了我这个名字:
wmic logicaldisk where name="%drive%:" get volumename
但我不知道我是否能从那里得到它,或者是否有更好的方法。我猜这是相当容易的任务,但我不知道这里的关键要素。有什么建议吗?
答案1
如何将变量设置为驱动器卷名?
以下批处理文件显示如何使用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 行相关的所有事物的绝佳参考。
- 对于/f- 循环命令以执行另一个命令的结果。
- 放- 显示、设置或删除 CMD 环境变量。使用 SET 所做的更改将仅在当前 CMD 会话期间保留。
- 树- 以图形树的形式显示驱动器或路径的文件夹结构。以图形树的形式显示驱动器或路径的文件夹结构。
- 西米克- Windows 管理规范命令。