例子:
我有一个 .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() 方法中的字符。