CMD批处理文件以读取目录中的文件并使用名称中的内容创建新文件

时间:2016-08-25 18:59:56

标签: batch-file cmd batch-processing

如果我有一个包含2个文件的目录,如下所示: 123456789_File1.pdf 123456789_File2.pdf

我需要运行一个批处理文件,让我只读取文件名,而不是它的路径。创建另一个具有相同名称和不同扩展名的文件,其内容只是名称的前9个字符。以下是我的尝试,我无法弄清楚为什么这不正确?我已经做了几个小时的研究,看起来应该很简单,我觉得我只是缺少一些东西。

FOR /R C:\Test\Files %%F in (*.*) do (set content=%%~nF & echo %content:~0,9%>> %%~nF.txt)

1 个答案:

答案 0 :(得分:0)

这对我有用:

%content%

为了将来参考,请注意"这是不正确的"就StackOverflow问题和答案而言,并不是对问题的准确描述。对问题的准确描述是,在循环的每次迭代中,%%F似乎包含与循环的第一次迭代中完全相同的内容,而不管!的值。 / p>

解决方案是启用"延迟扩展"并使用特殊的%分隔符代替char[][] matrix,以便享受延迟扩展带来的好处。