使用批处理文件,如何计算XML中字符串出现次数?

时间:2015-07-09 06:20:21

标签: batch-file

我对批处理文件的了解有限,所以请原谅我,如果我对你的答案有任何解释:)无论如何,这里有问题:我有一个包含ISBN号的文本文件,这对应于我硬保存的XML驾驶。我想知道如何:

  • 阅读文本文件并打开每个ISBN.xml
  • 计算我在批处理中键入的字符串的出现次数
  • xml没有任何换行符或回车符号,如果这就是它所调用的,它们的大小从20KB到7MB不等(如果这意味着什么,我不会......)
  • 这是我想要找到的xml的一部分:<related-object content-type="pdf.partial" object-type="application/pdf" specific-use="data" xlink:href="999999999999999toc_pv-viii_CBO.pdf"/><related-object content-type="image.extract" object-type="image/jpeg" specific-use="data" xlink:href="9999999999999_abstract_CBO.jpg"/>
  • 然后进入下一个ISBN,重复整个过程,直到文本文件结束
  • 然后记录下来:

    • 999999999999999:0
    • 999999999999998:2
    • 777777777777562:34

我将一些命令复制/粘贴到另一个批处理文件中,但我无法再通过任何文件了。

    @ECHO off

    set file_list=%CD%\count_list.txt
    if not exist "%CD%\count_list.txt" (
        ECHO Error: count_list.txt not found.
        ECHO Creating count_list.txt
        ECHO 2>count_list.txt >nul`
        ECHO Done
        ECHO Use count_list.txt to list the files to be read.
        goto :han
    )

    CLS
    ECHO 1) Count words.
    ECHO 2) Exit.
    ECHO.

    CHOICE /C 12 /M "Press a number:"
    CLS

    IF ERRORLEVEL 2 Exit
    IF ERRORLEVEL 1 GOTO bilang

    :bilang

    if not exist "%CD%\count.log" GOTO :hill
    del "%CD%\count.log"

    :hill
    set /p src_folder="%~1Enter Source Folder: "

    set /p matchWord="%~1Enter string to count: "

    for /f "delims=" %%f in (%file_list%) do (
        if exist "%src_folder%\%%f*" (
        ECHO %%f Result:
        )>>xerox.log else (
        ECHO %%f does not exist
        )

        for /f %%C in ('Find /C "%matchWord%" ^< %src_folder%\%%f*') do (
            set Count=%%C
            echo Result = %Count%  >> count.log
            echo Result = %Count%
        )
    )

    :han
    pause

在那里,我真的试图让它发挥作用,但这就是我所拥有的。但有一件事是我想到的。查找所有字符串并为每个字符串添加回车符,然后使用find选项计算所有出现的事件。那可能吗?这只是我的意见。任何答案都将非常感谢,谢谢你们! :)

0 个答案:

没有答案