我需要创建一个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扩展名添加到它创建的文件中。有什么想法吗?
答案 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"