在for循环中的Windows命令提示符子串

时间:2015-12-22 15:15:44

标签: windows command-line substring

在我描述我的问题之前,我必须说我是新手来执行命令行提示(Windows 10)。

我有一个包含txt文件的目录(以及其他文件)。我需要执行命令行可执行文件(txt2las),其中读取txt文件并写入.las文件。这就是我到目前为止的命令提示符for /R %f in (.\*.txt) do txt2las -i %f -o %f.laz

但是,这会创建name.txt.laz之类的文件。我想要的是name.laz,因此以某种方式从开头到最后四个字符取得子串。有人可以帮我怎么做吗?

我尝试了子串“函数”,但没有写任何东西。

2 个答案:

答案 0 :(得分:0)

... do txt2las  -i %f -o %~nf.laz

可以通过从提示符执行for /?来阅读文档。

答案 1 :(得分:0)

您可以使用~n修饰符提取文件的名称(不带扩展名):

for /R %f in (.\*.txt) do txt2las -i %f -o "%~dpnf.laz"

您可以在FOR /?帮助文档中了解有关修饰符的更多信息。

根据评论编辑:

要确保它与源位于同一目录中,请添加~dp修饰符以及~n。除文件d之外,这将提取p rive和n ath。此外,如果路径中包含空格,您可能希望将整个输出用引号括起来。