0

第一次在这里发帖,因为通常我可以通过使用谷歌找到我的解决方案。但这一次,不行。首先,操作系统是 Windows 7,它肯定必须在批处理文件中完成 - 但附加脚本没问题,只要它不是需要安装的软件。

我得到的文件总是看起来像这样,但值永远不会相同。

Example\Example\Example\examplefile.ext
1 0
4 16 7 5 3 9
46215
0
20689
20656
20667
6125
33585
46213
10256
20661
40189
21650
49792
31776
2101
(blank line)
(blank line)

最后两行“(空白行)”实际上是-空白行

现在,我需要的输出文件是这样的:

<A:Example\Example\Example\examplefile.ext>
<B:1 0>
<C:4>
<D:16>
<E:7>
<F:5>
<G:3>
<H:9>
<I:46215>
<J:0>
<K:20689>
<L:20656>
<M:20667>
<N:6125>
<O:33585>
<P:46213>
<Q:10256>
<R:20661>
<S:40189>
<T:21650>
<U:49792>
<V:31776>
<X:2101>

所以,这就是我需要输出的方式。所有的帮助都会非常感激。

4

1 回答 1

1

这将做你想要的。

笔记

  1. 这将仅支持最多包含 26 个项目的文件。(亚利桑那州)
  2. 第二行永远不会分开。

脚本

@echo off
setlocal EnableExtensions EnableDelayedExpansion
>output.txt <nul set /p "="
set "A=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /f "tokens=*" %%A in (Example\Example\Example\examplefile.ext) do (
    if "!A:~0,1!" equ "B" (
        echo ^<B:%%A^>>>output.txt
        set "A=!A:~1!"
    ) else (
        for %%B in (%%A) do (
            echo ^<!A:~0,1!:%%B^>>>output.txt
            set "A=!A:~1!"
        )
    )
)
endlocal
于 2013-02-01T23:32:51.023 回答