基于文件名批量删除

时间:2013-06-29 08:11:42

标签: batch-file

我有一个文件夹,用于将csv文件中的值导入excel电子表格。这意味着我需要每天多次删除和重命名批量文件以使用提供的宏。我已经自动删除和重命名,但我的批处理文件的删除部分有点笨拙,并且只编码为使用20个文件。它看起来如下:

del 1.csv
del 2.csv
etc

我想循环批处理文件的这一部分,但我发现的唯一代码是基于文件扩展名而不是文件名删除的。我想要的是删除所有名为csv文件的单个或双位数,并保留不同格式的任何csv。任何帮助或指向资源将非常感激。

3 个答案:

答案 0 :(得分:1)

我不完全理解,但我认为你正在寻找for /l命令:

for /l %%a in (1,1,[number for last file]) do del %%a.csv

e.g。

for /l %%a in (1,1,10) do del %%a.csv

将1.csv删除为10.csv

希望这有帮助

你的,莫娜

答案 1 :(得分:1)

试试这个 - 如果它回显正确的文件名然后删除回声。它应该删除带有2个或1个字符名称的CSV文件,即数字。

@echo off
for /f "delims=" %%a in (' dir ??.csv /b ^|findstr /r "^[0-9]*" ') do echo del "%%a"

答案 2 :(得分:1)

删除一位数文件:

for /L %%a in (0,1,9) do del %%a.csv

删除两位数文件:

setlocal EnableDelayedExpansion
set number=99
for /L %%a in (1,1,100) do (
   set /A number+=1
   del !number:~-2!.csv
)