1

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

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

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

 pause

我将此脚本保存为源目录中的文本格式的 CMD 文件,在本地硬盘驱动器上,尽管它位于子目录中。目录输出偏断,输出乱码,创建的目录数与文件数不匹配,创建的目录似乎有嵌套。我对此进行了研究,似乎无法找到明确的答案。

4

1 回答 1

3

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

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

当然,如果您仍希望在批处理脚本中使用它,请使用%%I%%~pnI百分比而不是单百分比。有关如何工作help for的说明,请参阅最后几页。%%~pnI

于 2013-02-27T18:54:32.757 回答