Win 7:CMD批处理文件,用于根据文件名创建目录

时间:2013-02-27 18:09:28

标签: windows-7 batch-file directory cmd filenames

我正在Win7环境中处理CMD行批处理文件,该文件将根据目录中列出的文件名创建目录。

我正在使用此代码,但创建的输出部分且不完整,只有

 setlocal enabledelayedexpansion
 for /r %%i in (*.wav) do (
     set filename1=%%i
     set folder1=!filename1:~4,10!
     mkdir !folder1!
      )

 pause

我将此脚本以文本格式保存为源目录中的CMD文件,位于本地硬盘上,尽管它位于子目录中。 目录输出是部分和破坏的,输出乱码,创建的目录数与文件数不匹配,创建的目录似乎嵌套。我研究了这个,似乎无法找到明确的答案。

1 个答案:

答案 0 :(得分:3)

你想要完成的是什么并不完全清楚。您是否尝试在包含wav文件的同一目录中创建目录,只是没有.wav扩展名?如果是这样,你会错过一些引号,而你正在剥离文件名的错误结尾。如果这是你想要完成的,它实际上可以用一个命令完成,不需要批处理脚本。在命令提示符下键入:

for /r %I in (*.wav) do mkdir "%~pnI"

当然,如果您仍然希望在批处理脚本中使用它,请使用{%{1}}和%%I,而不是单个百分比。请参阅%%~pnI的最后几页,了解help for的工作原理。