如何过滤确切的文件扩展名?

时间:2018-12-23 02:17:09

标签: batch-file wildcard filenames file-extension

我在.las文件夹中有.lasxDATA个文件,它们具有相同的文件名。我正在尝试仅对* .las文件应用进程。但是通配符模式*.las似乎还包含* .lasx文件:

for %%f in ("%DATA_PATH%\*.las") do

lasground -i "%DATA_PATH%\*.las" -merged

-merged之前的参数应该只是我的* .las文件的列表,但是在我的测试过程中,它始终包含* .lasx文件。

关于如何获取所有.lasx文件的任何想法?

2 个答案:

答案 0 :(得分:4)

在提供了文档和您正在使用的实际程序之后,我将尝试这两个示例。

使用所有文件名创建变量。

@ECHO OFF

for %%G in ("%DATA_PATH%\*.las") do (
    IF /I "%%~xG"==".las" call set list=%%list%% "%%G"
)
lasground -i %list% -merged

列出文件并使用-lof选项。

@ECHO OFF

(for %%G in ("%DATA_PATH%\*.las") do (
    IF /I "%%~xG"==".las" echo %%G
)
)>List.txt
lasground -lof List.txt -merged

答案 1 :(得分:2)

Where命令是一种直接过滤此结果的简单方法,即仅输出指定的扩展名:

@Where "%DATA_PATH%":*.las 2>Nul >"LasOnly.txt"

然后您可以按照建议使用"LasOnly.txt"选项将lasground用作-lof的输入:

@lasground -lof "LasOnly.txt" -merged