如果.shp小于(等于)100字节,如何批量删除文件?

问题描述 投票:0回答:2

我有一个 Esri 形状文件夹。每个形状由 5 个独立的文件组成。 (.dbf .prj .qpj .shp .shx) 如果 .shp 小于(等于)100 字节,我想删除 5 个单独的文件。

例如,如果我有以下文件:

A.dbf
A.prj
A.qpj
A.shp (100byte)
A.shx
B.dbf
B.prj
B.qpj
B.shp (150byte)
B.shx
C.dbf
C.prj
C.qpj
C.shp
C.shx (243byte)

然后我想要这些文件如下:

B.dbf
B.prj
B.qpj
B.shp
B.shx
C.dbf
C.prj
C.qpj
C.shp
C.shx

我不太了解编写批处理文件所需的代码语言。 我在 Stackoverflow 上的其他地方找到了一些代码,但它 100 字节全部删除

@echo off
setlocal
:: Size is in bytes
set "min.size=100"

for /f  "usebackq delims=;" %%A in (`dir /b /A:-D *.*`) do If %%~zA LSS %min.size% del "%%A"
batch-file filesize
2个回答
0
投票
for /f  "usebackq delims=;" %%A in (`dir /b /A:-D *.shp`) do If %%~zA LEQ %min.size% ECHO del "%%~nA.*"
  • *.shp
    使
    dir
    仅返回那些名为
    whatever.shp
  • 的文件
  • 插入
    ECHO
    作为安全措施,以简单地报告要删除的文件。完成测试后,删除该行上的
    echo
    关键字以实际删除报告的文件。
  • ~n
    修饰符仅选择文件的名称部分
    %%A
  • .*
    然后说
    this name - all extensions

在应用于真实数据之前,始终验证测试目录。


-1
投票

这个

forfiles
解决方案怎么样:

forfiles /M *.shp /C "cmd /c if @fsize LEQ 100 echo @file, @fsize"

这会显示所有小于 100 字节的

*.shp
文件及其大小。
更改命令(
del @file
而不是
echo @file, @fsize
),它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.