1

たくさんのフォルダがあります。

各フォルダには、およそ 1 ~ 20 の .txt ファイルがあります。

各 .t​​xt ファイル (一意の名前) には、HTML 形式のテキスト (line2) が続くタイトル (line1) が含まれています。

例 (1) .txt が内部でどのように見えるか:

Frankfurter tail turkey doner
<p>Bacon ipsum dolor sit amet turkey sausage brisket pork.</p><p>Tongue swine turducken capicola shoulder hamburger pig.<p/><p>Ball tip jerky ham, doner <a href=""https://en.wikipedia.org/wiki/Meat"">filet mignon ham</a> hock bresaola jowl andouille pig cow</p>

例 (2) .txt が内部でどのように見えるか:

Batman
<p>You either die a hero or you live long enough to see yourself become the villain.</p>

簡単に説明すると、.txt ファイルの内容を、行ごとに 1 つのファイルの内容を含む単一のファイルにマージしたいと考えています。

各行も引用符で囲み、カンマで区切ります。

上記の例から、出力ファイルは次のようになります。

"Frankfurter tail turkey doner","<p>Bacon ipsum dolor sit amet turkey sausage brisket pork.</p><p>Tongue swine turducken capicola shoulder hamburger pig.<p/><p>Ball tip jerky ham, doner <a href=""https://en.wikipedia.org/wiki/Meat"">filet mignon ham</a> hock bresaola jowl andouille pig cow</p>"
"Batman","<p>You either die a hero or you live long enough to see yourself become the villain.</p>"

したがって、私の質問は、これが最も簡単で最速の方法で行われる方法です。

私は今これを手作業でやっていますが、かなり遅いです。このボリュームでコピペすると頭が腫れます。

Edit1: ライトな調査を行っています。

  • Powershell、VBA、および .BAT ファイルは何かのように見えますが、機能するものはまだ見つかりません。
  • 入力ファイルまたは出力ファイルの場所をコードで指定したくありません。ソリューションの起動ファイルを任意のフォルダーに配置し、出力ファイルもここに生成する必要があります。

1# を試してください: これを含む Windows バッチ ファイル (.bat) を作成しました:

for %f in (*.txt) do type "%f" >> combined.txt

多数の .txt ファイルを含むフォルダーに配置されますが、コンソールは開いたり閉じたりするだけです。ファイルが作成されていません。

Edit2: 今、私たちは料理をしています!

これ:

for %%f in (*.txt) do type "%%f" >> combined.txt

出力を与えます:

Batman
<p>You either die a hero or you live long enough to see yourself become the villain.</p>
Frankfurter tail turkey doner
<p>Bacon ipsum dolor sit amet turkey sausage brisket pork.</p><p>Tongue swine turducken capicola shoulder hamburger pig.<p/><p>Ball tip jerky ham, doner <a href=""https://en.wikipedia.org/wiki/Meat"">filet mignon ham</a> hock bresaola jowl andouille pig cow</p>

これは私が望むものに非常に近いです!

  • 現在、引用符を追加して改行をコンマに置き換えても解決されません。

よろしくお願いします、

ルイ・カン

4

1 に答える 1

1

外部の助けを得て、これは完全に機能します。

    @echo off
cls
setlocal
set "combined=combined.txt"
(
  for %%a in (*.txt) do (
    if not "%%a" == "%combined%" (
      echo %%a 1>&2
      set "firstLine=true"
      for /f "tokens=1,* delims=:   " %%b in ('findstr /n "^" %%a') do (
        if defined firstLine (
          set /p =""%%c",""
          set "firstLine="
        ) else if not "%%c" == "" (
          set /p =%%c
        )
      )
      echo "
    )
  )
) > %combined% <nul
endlocal
goto:eof
于 2013-07-17T07:25:25.227 に答える