批处理命令仅在命令行上实现时才有效

时间:2014-10-04 20:24:28

标签: batch-file command-line lidar

我有一个脚本,它使用FUSION(LiDAR处理)命令执行以下工作流程:

  1. 将LiDAR LAS文件剪辑到多边形边界,从而创建唯一的LAS 每个多边形的文件
  2. 运行cloudmetrics以记录每个点上的点云信息 剪辑LAS文件基础
  3. 这是我为完成步骤1和2而创建的脚本:

    set shapefile=D:\path\to\shapefile.shp
    set inlas=D:\path\to\input\folder\containing\las\files
    set clippedlas=D:\path\to\clipped\las\files
    set outcsv=D:\output\csvfile.csv
    
    dir %inlas%\*.las /b /s > %inlas%\MyLASList.txt
    
    PolyClipData /multifile /shape:1,* %shapefile% %clippedlas%\clipped %inlas%\MyLASList.txt
    
    dir %clippedlas%\*.las /b /s > %clippedlas%\MyLASList2.txt
    cloudmetrics %clippedlas%\MyLASList2.txt %outcsv%
    

    如果我通过双击该文件将此脚本作为.bat文件运行,它会在polyclipdata命令处创建某种无限循环。但是,如果我在命令行上逐行实现脚本,则工作流将执行所需的任务。哪里出错了?

2 个答案:

答案 0 :(得分:1)

在命令提示符下创建这个批处理文件。

PathFind.bat

@echo off
echo. 
echo PathFind - Finds the first file in in a path
echo ======== = ===== === ===== ==== == == = ====
echo. 
echo Searching for %1 in %path%
echo. 
set a=%~$PATH:1
If "%a%"=="" (Echo %1 not found) else (echo %1 found at %a%)

然后输入以下行,查看可执行文件的路径。

pathfind PolyClipData.com
pathfind PolyClipData.bat
pathfind PolyClipData.cmd
pathfind PolyClipData.exe
pathfind PolyClipData.vbs
pathfind PolyClipData.js
pathfind PolyClipData.wsh
pathfind PolyClipData.wsf
pathfind PolyClipData.vbe
pathfind PolyClipData.jse
pathfind PolyClipData.lnk
pathfind PolyClipData.url
pathfind PolyClipData.pif
pathfind PolyClipData.msc

和远景

pathfind PolyClipData

如果找不到任何内容,那么您必须在批处理文件运行时对其进行编辑。

答案 1 :(得分:1)

当你运行该文件时,你是否在另一个Fusion文件夹中?也许你需要在批处理文件中放置正确的FUSION路径,因为Fusion命令行可执行文件需要从fusion文件夹运行。

尝试放置正确的路径:.. \ PolyClipData(或Noodles指向的路径查找)