如何为列表中的每个单词创建一个 txt 文件

如何为列表中的每个单词创建一个 txt 文件

例子:

我有一个 .txt 文件... (C:\Gardening\WordFile.txt)...其中包含以下文字...

Aquaculture
Aquaponics
Hydroponics
Aeroponics

我需要在指定目录中创建一个 .TXT 文件...(例如:C:\Gardening)像这样

C:\Gardening\Aquaculture.txt

C:\Gardening\Aquaponics.txt

C:\Gardening\Hydroponics.txt

C:\Gardening\Aeroponics.txt

文件 (C:\Gardening\WordFile.txt) 中的每个单词

我已经有一个批处理文件,它为目录中的每个文件创建一个文件夹,并将文件移动到其同名目录中。

我确实需要在单独的批处理文件中使用这两个函数,因为我需要每个函数在不同的时间单独工作。

答案1

如何为列表中的每个单词创建一个 txt 文件

如果每个单词C:\园艺\Word文件.txt在文件中它自己位于单独的行上:

WordFile.txt 中的文本示例:

Aquaculture 
Aquaponics 
Hydroponics 
Aeroponics

隐式批处理脚本

此批处理脚本应从与列表.txt和要创建的文件将驻留;因此批处理脚本, 这文件列表,以及创建文件都将在相同的一个文件夹。

@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:\园艺\Word文件.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

答案2

如果 powershell 是一个选项:

假设每个单词都在单独的行上。

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

我想它是不言自明的。

  • 逐行读取文件内容

  • 为所述文件的每一行创建一个新的文本文件,并以当前行的名称命名( $_ )

如果你的单词被分隔符分隔,例如您需要用以下内容替换上述命令的 _Get-Content _ 部分(管道符号 | 之前的部分) (Get-Content "C:\Gardening\WordFile.txt").split(","):。

其工作原理与上面的类似,只是不是逐行读取,而是通过指定的分隔符拆分每个条目。

您可以用特定的分隔符替换 Split() 方法中的字符。

相关内容