按名称在批处理文件中按顺序扫描文件

时间:2014-04-22 13:16:26

标签: html batch-file for-loop solr

我需要按名称顺序扫描文件,因为我的脚本似乎不使用此条件。 我应该在一个文件夹中处理一些html,然后是1.html,然后是2.html,然后是3.html,然后在solr中上传文件,设置id等于名称(所以1.html应该有id = 1等)

这是我的蝙蝠脚本,但似乎没有我想要的确切行为。

 @setlocal enableextensions enabledelayedexpansion
@echo off
set /a "i = 1"

for %%f in (*.html) do (
    set "N=%%f"
    curl "http://localhost:8983/solr/update/extract?literal.id=!i!&commit=true" -F "myfile=@!N!"
    set /a "i = i + 1"
    )

)
endlocal

因此页面在solr中正确上传,但id与上传的页面不匹配。 例如,第9.html页谈到了一个足球运动员,但在solr中,页面9.html与id = 9谈论另一件事。

我认为错误是我的计数器,我不需要它,并且literal.id应该设置在没有扩展名的页面名称的值上,所以页面1.html应该有id = 1但我不要不知道如何获得名称文件的这一部分。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

%%~nf应返回%%f中引用的文件的名称(不带扩展名)。有关完整参考,请参阅for /?