我在将多个文件从不同文件夹移动到一个文件夹时遇到问题。
我的所有文件都以 结尾.las
并位于如下路径中:e:\LiDAR\%%%%\LIDAR*\
,其中%%%%
是一系列 4 个数字,如 0950,并且LiDAR*
是包含文件的所有不同文件夹名称的开头.las
。
以下是其中一个文件路径的示例.las
:
E:\LiDAR\0950\LIDARHD_1-0_LAZ_PK-0950_6535-2021\Semis_2021_0950_6535_LA93_IGN69.las
我想将所有这些文件移动到我创建的文件夹中,这是它的路径:
E:\LiDAR\Las_files
这是我尝试过的命令行,但它不起作用:
E:\>move e:\LiDAR\%%%%\LIDAR*\*.las e:\LiDAR\Las_files\
如果有人能帮助我我会很高兴:)
答案1
在 Powershell 中尝试此操作:
Get-ChildItem -Path "E:\LiDAR" -Filter *.las -Recurse | Move-Item -Destination "E:\LiDAR\Las_files" -Whatif
这会将所有子文件夹中的每个 .las 文件移动到 las_files 文件夹中。
答案2
您的尝试可以在 Bash 中起作用,但是 Cmd.exe 没有“通用”通配符处理(它是根据具体情况以不同方式完成的move
)del
,因此您需要使用for
并循环遍历每个目录:
for /d %x in (e:\lidar\####\lidar*) do move %x\*.las e:\lidar\las_files\
(请注意,如果将其放入 .bat/.cmd 脚本中,则%x
必须写为%%x
.)
如果您需要循环遍历编号目录,for
那么您将需要第二个(外部)循环。