0

通常、Google を使用するだけで解決策を見つけることができるため、ここに最初の投稿をします。でも今回は、いや。まず、OS は 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)

最後の 2 行「(空白行)」は、実際には空白行です。

さて、出力ファイルを次のようにする必要があります。

<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 アイテムのファイルのみをサポートします。(AZ)
  2. 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 に答える