リスト内の単語ごとにtxtファイルを作成するにはどうすればよいですか


5

例:

.txtファイルがあります...(C:\ Gardening \ WordFile.txt)...次の単語を...

Aquaculture
Aquaponics
Hydroponics
Aeroponics

指定したディレクトリに作成された.TXTファイルが必要です...(IE:C:\ Gardening)このように

C:\Gardening\Aquaculture.txt

C:\Gardening\Aquaponics.txt

C:\Gardening\Hydroponics.txt

C:\Gardening\Aeroponics.txt

ファイル内の各単語(C:\ Gardening \ WordFile.txt)

ディレクトリ内の各ファイルのフォルダーを作成し、ファイルをその名前の付いたディレクトリに移動するバッチファイルが既にあります。

各関数は異なる時間に個別に動作する必要があるため、実際には両方の関数が別々のバッチファイルに必要です。

回答:


4

リスト内の単語ごとにtxtファイルを作成するにはどうすればよいですか

C:\ Gardening \ WordFile.txtの各単語がファイル内の個別の行にある場合は、これを解決策として試してください。

WordFile.txtのテキストの例:

Aquaculture 
Aquaponics 
Hydroponics 
Aeroponics

暗黙的なバッチスクリプト

このバッチスクリプトは、List.txtと同じディレクトリから実行する必要があり、作成されるファイルは常駐します。そのため、バッチスクリプトfile-list、および作成されたファイルはすべて、このために同じ 1つのフォルダーにあります。

@ECHO ON

::: Implicitly Written
SET FileList=List.txt

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO ^0>"%%~F.txt"

)
GOTO EOF

明示的なバッチスクリプト

このバッチスクリプトは、ファイルリストと新しいファイルが作成される場所を指すフルパスが指定されているため、どこからでも実行できます。

@ECHO ON

:::Explicitly Written
:::: Ensure there are NO SPACES in this path
SET FileList==H:\OMGA\AutoRefresh\FileList.txt
SET CreateFileDir=H:\OMGA\AutoRefresh\OutputFiles\

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO ^0>"%CreateFileDir%\%%~F.txt"

)
GOTO EOF

C:\ Gardening \ WordFile.txtの各単語が同じ行にあり、それぞれがスペースで区切られている場合は、代わりに以下のソリューションを使用します。

WordFile.txtのテキストの例:

Aquaculture Aquaponics Hydroponics Aeroponics

FOR /F "DELIMS=" %%F IN (C:\Gardening\WordFile.txt) DO FOR %%G IN (%%F) DO ECHO. >> "C:\Gardening\%%~F.txt"

コメント付きのリクエストごとに追加されました。。。

@ECHO ON

::: Implicit
:::: Ensure there are NO SPACES in this path
SET FileList=List.txt

FOR /F "TOKENS=*" %%F IN (%FileList%) DO (

    ECHO.  >>"%%~F.txt"
    CALL :CreateFile "%%~F.txt"
)
GOTO EOF

:CreateFile
ECHO ^0>"%~1"
GOTO EOF

コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
ジャーニーマンオタク

それでした。今すぐ動作します!
user3626994

@ user3626994 回答の受諾を参照して、質問に対する問題の解決に役立つ回答がどのように機能するかを理解してください。機会があれば、それをチェックして、質問に対する問い合わせのループを閉じるために私の答えを受け入れることを検討してください。
ポン引きジュースIT

2

powershellがオプションの場合:

すべての単語が別々の行にあると仮定します。

Get-Content "C:\Gardening\WordFile.txt" | Foreach-Object {New-Item "C:\Gardening\$_.txt" -Type file}

自明だと思います。

  • ファイルの内容を1行ずつ読み取る

  • 上記のファイルの各行に対して、現在の行の名前($ _)で新しいテキストファイルを作成します

あなたの言葉は、のような区切り文字で区切られている場合あなたは、上記のコマンドの_GET -コンテンツ_部分(パイプ記号の前の部分を|)を交換する必要があり、以下に: (Get-Content "C:\Gardening\WordFile.txt").split(",")

これは上記のように機能しますが、行ごとに読み取る代わりに、指定した区切り文字ですべてのエントリを分割します。

特定の区切り文字でSplit()メソッドの文字を置き換えることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.