我正在Win7环境中处理CMD行批处理文件,该文件将根据目录中列出的文件名创建目录。
我正在使用此代码,但创建的输出部分且不完整,只有
setlocal enabledelayedexpansion
for /r %%i in (*.wav) do (
set filename1=%%i
set folder1=!filename1:~4,10!
mkdir !folder1!
)
pause
我将此脚本以文本格式保存为源目录中的CMD文件,位于本地硬盘上,尽管它位于子目录中。 目录输出是部分和破坏的,输出乱码,创建的目录数与文件数不匹配,创建的目录似乎嵌套。我研究了这个,似乎无法找到明确的答案。
答案 0 :(得分:3)
你想要完成的是什么并不完全清楚。您是否尝试在包含wav文件的同一目录中创建目录,只是没有.wav扩展名?如果是这样,你会错过一些引号,而你正在剥离文件名的错误结尾。如果这是你想要完成的,它实际上可以用一个命令完成,不需要批处理脚本。在命令提示符下键入:
for /r %I in (*.wav) do mkdir "%~pnI"
当然,如果您仍然希望在批处理脚本中使用它,请使用{%{1}}和%%I
,而不是单个百分比。请参阅%%~pnI
的最后几页,了解help for
的工作原理。