【问题标题】:extract content from a txt file and making txt files with that content using batch从 txt 文件中提取内容并使用批处理制作包含该内容的 txt 文件
【发布时间】:2022-11-10 23:12:04
【问题描述】:

我从未尝试过,我一直在寻找制作脚本的最佳方法,该脚本可以将 txt 文件中的内容提取到他们自己的 txt 文件中

现在我管理了它,它将所有内容提取到他们自己的 txt 文件中,但不知道如何使它使用提取的内容作为 txt 文件名

@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%a in ('type "a.txt"') do (
    cd > %%a.txt
)
endlocal

所以我有这个

a.txt Content of my txt file 
  All_type_2020
  All_Foods_2021

这就是我得到的

All_type_2020All_Foods_2021.txt

我测试了许多不同的脚本,我得到的关闭是上面的脚本

我的目标是得到这个结果

All_type_2020.txt

All_Foods_2021.txt

【问题讨论】:

  • 我不明白你想要什么,你想要命名为All_type_2020.txtAll_Foods_2021.txt 的文本文件,内容是什么? | -- All_type_2020 对您意味着什么?那是a.txt 的确切内容吗?
  • @thecarpy - 是的,我这样做是为了显示 | -- a.txt 里面的内容 - 我不知道如何披露 txt 文件里面的内容,所以是的,在我的 txt 文件里面我有 100 条不同的消息,比如什么您在上面看到,我想将每一行提取到 txt 文件中,但使用它们自己的文件名
  • 我更新了我的问题好一点

标签: batch-file


【解决方案1】:

我不完全确定你在寻找什么,但是我可能有一些东西可以帮助你。

如果第一个单词等于“blue”,我在下面编写的代码将检查“a.txt”中的每个句子,如果是的话,它将把它输出到一个txt文件中。

for /f "delims=" %%a in (a.txt) do if "%%a" == "blue" (
echo - %%a is blue >blue.txt
) else (
if "%%a" == "red" echo - %%a is red >red.txt)

pause 

这是我认为您正在尝试做的事情的过度简化版本,但希望它可以提供帮助。要更改文档过滤器在网站周围的外观,您一定会找到帮助的方法。

【讨论】:

  • 谢谢,不是我要找的,但它确实有帮助 - delims 是我缺少的代码 - 我确实测试了它,但我忘了使用这个 *
【解决方案2】:

所以,a.txt 的内容

All_type_2020
All_Foods_2021
All_type_2021
All_Foods_2022
All_type_2022

我的 CMD 文件的内容:

@echo off
for /f "delims=*" %%a in (a.txt) do (
echo. >%%a.txt
)

在目录中,我有这些空文件:

11/10/2022  10:22 AM    <DIR>          .
11/10/2022  10:22 AM    <DIR>          ..
11/10/2022  10:22 AM                77 a.txt
11/10/2022  10:22 AM                 3 All_Foods_2021.txt
11/10/2022  10:22 AM                 3 All_Foods_2022.txt
11/10/2022  10:22 AM                 3 All_type_2020.txt
11/10/2022  10:22 AM                 3 All_type_2021.txt
11/10/2022  10:22 AM                 3 All_type_2022.txt
           6 File(s)             92 bytes

【讨论】:

  • 谢谢 - 很好,我发现了问题 - 我使用了错误的代码 delims 是正确的代码 - 我确实测试过但我忘了使用这个 *
  • 空文件可能是因为.echo 之后
【解决方案3】:

感谢thecarpyPedro 我能够找出我的错误

这是正确的脚本

@echo off
setlocal enabledelayedexpansion

for /f "delims=*" %%a in ('type "a.txt"') do (
    md > %%a.txt
)
endlocal

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多