创建硬盘上的文件列表,并使用卷名命名该列表

创建硬盘上的文件列表,并使用卷名命名该列表

所以,我知道这会创建驱动器中的文件列表:

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 管理规范命令。

相关内容