我在一个目录中有 .txt 文件(1 个或多个),我希望我的批处理文件读取它们的文件名,从第 4 个字符开始获取 20 个字符并在文件夹中创建一个新目录。这是我的代码:
for /f %%i in ('dir /b *.TXT') do (
set filename1=%%i
set folder1=%filename1:~4,20%
mkdir %folder1%
)
当我第一次运行这个程序时,我得到第 3 行的语法不正确错误(set folder1=....)并且没有创建文件夹。我尝试第二次运行它并创建了 2 个文件夹(一个名为“~4”,一个名为“20”)。在第 3 次运行时,该文件夹已正确创建!如果我关闭命令提示符并再次打开它,它还需要运行 3 次才能创建文件夹。
我也尝试过使用“for /r . $$i in (*.TXT) 没有运气。据我了解,问题是带有“set folder1=...”的行没有得到正确的文件名。我也尝试过使用 %%~i 或 %%~ni,我尝试将文件名(似乎总是得到正确的字符串)输出到文本文件,然后再次从该文件中读取,但没有成功。我不知道还能尝试什么。是因为 %%i 存储文件本身而不是带有文件名的字符串吗?
示例文件名为“REG_18004247K_20120208_A.TXT”,我希望创建一个名为“18004247K_20120208_A”的文件夹。
我完全不熟悉批处理编程(我只使用批处理文件大约 2 周),我猜这个问题可能非常简单。任何帮助,将不胜感激。
基里亚科斯