我有一个文件夹里面有一个或多个.txt文件,我想让批处理文件读取它们的文件名,获取从第四个字符开始的20个字符,并在该文件夹中创建一个新目录。这是我的代码:
当我运行这个程序时,第一次在第三行(set folder1 = ...)会出现语法错误,并且不会创建任何文件夹。 我尝试第二次运行它,并创建了两个文件夹(一个名为“〜4”,另一个名为“20”)。 第三次运行后,文件夹正确地创建了!如果我关闭命令提示符并再次打开它,则需要运行3次才能创建文件夹。我还尝试使用“for / r . $$ i in(*.TXT)”,但没有成功。据我了解,问题是“set folder1 = ...”所在的行未得到正确的文件名。我还尝试使用%%〜i或%%〜ni,尝试将文件名输出(似乎总是得到正确的字符串)到文本文件中,然后从该文件中读取,同样没有成功。我不知道还有什么别的方法可以尝试。是因为%%i存储文件本身而不是带有文件名的字符串吗?一个示例文件名为“REG_18004247K_20120208_A.TXT”,我想创建一个名为“18004247K_20120208_A”的文件夹。我对批处理编程一点也不熟悉(我只用批处理文件工作了2个星期),我猜问题可能非常简单。 感谢任何帮助。 Kyriacos
for /f %%i in ('dir /b *.TXT') do (
set filename1=%%i
set folder1=%filename1:~4,20%
mkdir %folder1%
)
当我运行这个程序时,第一次在第三行(set folder1 = ...)会出现语法错误,并且不会创建任何文件夹。 我尝试第二次运行它,并创建了两个文件夹(一个名为“〜4”,另一个名为“20”)。 第三次运行后,文件夹正确地创建了!如果我关闭命令提示符并再次打开它,则需要运行3次才能创建文件夹。我还尝试使用“for / r . $$ i in(*.TXT)”,但没有成功。据我了解,问题是“set folder1 = ...”所在的行未得到正确的文件名。我还尝试使用%%〜i或%%〜ni,尝试将文件名输出(似乎总是得到正确的字符串)到文本文件中,然后从该文件中读取,同样没有成功。我不知道还有什么别的方法可以尝试。是因为%%i存储文件本身而不是带有文件名的字符串吗?一个示例文件名为“REG_18004247K_20120208_A.TXT”,我想创建一个名为“18004247K_20120208_A”的文件夹。我对批处理编程一点也不熟悉(我只用批处理文件工作了2个星期),我猜问题可能非常简单。 感谢任何帮助。 Kyriacos