创建批处理以读取驱动器的标签并创建txt

时间:2017-08-23 14:09:52

标签: batch-file label

我需要创建一个Batch,它将创建一个以光盘标签命名的.txt文件,并包含该磁盘的文件和目录。 对于例如我有一个USB驱动器(驱动器F:和标签'blabla'), 我需要询问用户它是哪个驱动器(用户需要输入驱动器号),然后批处理文件将创建一个名为blabla.txt的.txt文件,该文件将包含该驱动器的文件和目录。 有任何想法吗?

好的,我就在这里:

echo off & setlocal enableextensions    
CLS  
echo[    
set /p drive=What is the Drive Letter:    
set /p ampm=type AM or PM:    
for /f "tokens=1-5*" %%1 in ('vol %drive%') do (
   set vol=%%6 & goto done
)
:done
DIR %drive% /S gen > C:\Users\Administrator\Desktop\%DATE:~0,2%%DATE:~3,2%%DATE:~8,4%%ampm%_%vol%.txt

它就像一个魅力,但问题是它不会将.txt扩展名添加到它创建的文件中。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

FOR Metavariable

我不建议使用纯数字变量名,因为它可能与命令行参数%1 - %9冲突。

驱动器信件

dir %drive%

应改为

dir %drive%:

dir要求:了解这是一个驱动器,而不是文件夹或文件。

.txt分机号

我无法理解这个问题,因为我无法在我的机器上重现这种情况。但是,您可以使用引号包装路径。这是Windows范围内的预防措施。

C:\Users\Administrator\Desktop\%DATE:~0,2%%DATE:~3,2%%DATE:~8,4%%ampm%_%vol%.txt

变为

"C:\Users\Administrator\Desktop\%DATE:~0,2%%DATE:~3,2%%DATE:~8,4%%ampm%_%vol%.txt"