在文件中查找文本,然后在批处理中重命名文件

谢恩89

我在创建一个脚本时遇到了一些问题,该脚本在文件夹内的每个文件中查找特定文本,获取该文本之后的内容并将其设置为文件的名称,所有这些都在循环中,以对多个文件执行相同的操作.

例如,我有一个包含 file1、file2、file3 的文件夹

content in file1: sw_part = "ABC-DEF.GHJ";
content in file2: sw_part = "ABC-123.XYZ";
content in file3: sw_part = "ABCDE-FGHJ.KLMN";

结果应该是:

file1 renamed to ABC-DEF.GHJ
file2 renamed to ABC-123.XYZ
file3 renamed to ABCDE-FGHJ.KLMN

我做的是这样的:

for /F "tokens=2 delims==" %%a in ('findstr /I "sw_part" file1') do set "swpart=%%a"  
echo sw part is: %swpart%   
copy file1 "%swpart%"

这工作正常,但它仅适用于给定的文件(我不能让它与循环一起工作),并且它;在最后重命名文件有什么帮助吗?

它需要在 BATCH 中完成。PowerShell 也可以。

谢谢

芯片

以下脚本将执行您想要的操作。

cd C:\temp\swpart

$files = [System.Collections.ArrayList]@()

select-string -Path "*.*" -Pattern "sw_part" | ForEach-Object {
   
    $old_filename = $_.Filename

    $new_filename = $_.line -replace "^.*sw_part = ""","" -replace """.*$",""


    # put everything in array, so the files get closed and can be renamed later.
    $null = $files.Add(@{"old"=$old_filename;"new"=$new_filename})

}

$files |ForEach-Object{
    $old_filename = $_.old
    $new_filename = $_.new

    rename-item $old_filename $new_filename -Force
}


确保更改第一行以更改文件所在的路径。

如果由于某种原因并非所有文件都被重命名,请再次运行该脚本。然后该文件仍在使用中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

批处理文件让用户选择文件夹中的文件然后重命名

来自分类Dev

使用文本文件重命名文件夹中的批处理文件

来自分类Dev

使用批处理文件查找并重命名文件中的字符串

来自分类Dev

基于模式,在终端中重命名批处理文件

来自分类Dev

使用批处理文件在文件中查找文本,然后清除它,保存到文件和变量中

来自分类Dev

递归重命名子文件夹Windows批处理文件中的文件

来自分类Dev

使用批处理文件,我可以在ZIP文件中重命名文件吗?

来自分类Dev

编写批处理文件以重命名多个文件夹中的文件

来自分类Dev

批处理文件重命名文件夹中的文件

来自分类Dev

搜索文件中的文本,然后使用该文本重命名文件

来自分类Dev

搜索文件中的文本,然后使用该文本重命名文件

来自分类Dev

了解批处理文件中的for循环以通过替换字符串来重命名文件

来自分类Dev

如何在批处理文件中批量重命名带有多个点的文件?

来自分类Dev

重命名子文件夹中的文件并通过批处理覆盖

来自分类Dev

以“-”开头的批处理重命名文件?

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

批处理文件重命名与Python

来自分类Dev

重命名文件模式Windows批处理

来自分类Dev

如何重命名批处理文件

来自分类Dev

使用批处理脚本重命名目录中的多个文件

来自分类Dev

使用批处理重命名用户目录中的文件夹

来自分类Dev

使用批处理文件在目录中查找属性文件,然后调用命令

来自分类Dev

按日期在目录中查找文件...然后将其重命名

来自分类Dev

批处理文件-递归查找编号最高的文件并将其重命名

来自分类Dev

要解压缩的批处理文件,然后按顺序重命名其 jpg

来自分类Dev

Shell中的批处理重命名

来自分类Dev

批处理文件重命名脚本交换文件名中的子字符串?

来自分类Dev

批处理 Windows - 如何创建一个循环来重命名不同文件夹中的许多文件?

来自分类Dev

在文件中查找文本并将其设置为变量。批处理文件

Related 相关文章

  1. 1

    批处理文件让用户选择文件夹中的文件然后重命名

  2. 2

    使用文本文件重命名文件夹中的批处理文件

  3. 3

    使用批处理文件查找并重命名文件中的字符串

  4. 4

    基于模式,在终端中重命名批处理文件

  5. 5

    使用批处理文件在文件中查找文本,然后清除它,保存到文件和变量中

  6. 6

    递归重命名子文件夹Windows批处理文件中的文件

  7. 7

    使用批处理文件,我可以在ZIP文件中重命名文件吗?

  8. 8

    编写批处理文件以重命名多个文件夹中的文件

  9. 9

    批处理文件重命名文件夹中的文件

  10. 10

    搜索文件中的文本,然后使用该文本重命名文件

  11. 11

    搜索文件中的文本,然后使用该文本重命名文件

  12. 12

    了解批处理文件中的for循环以通过替换字符串来重命名文件

  13. 13

    如何在批处理文件中批量重命名带有多个点的文件?

  14. 14

    重命名子文件夹中的文件并通过批处理覆盖

  15. 15

    以“-”开头的批处理重命名文件?

  16. 16

    重命名文件模式Windows批处理

  17. 17

    批处理文件重命名与Python

  18. 18

    重命名文件模式Windows批处理

  19. 19

    如何重命名批处理文件

  20. 20

    使用批处理脚本重命名目录中的多个文件

  21. 21

    使用批处理重命名用户目录中的文件夹

  22. 22

    使用批处理文件在目录中查找属性文件,然后调用命令

  23. 23

    按日期在目录中查找文件...然后将其重命名

  24. 24

    批处理文件-递归查找编号最高的文件并将其重命名

  25. 25

    要解压缩的批处理文件,然后按顺序重命名其 jpg

  26. 26

    Shell中的批处理重命名

  27. 27

    批处理文件重命名脚本交换文件名中的子字符串?

  28. 28

    批处理 Windows - 如何创建一个循环来重命名不同文件夹中的许多文件?

  29. 29

    在文件中查找文本并将其设置为变量。批处理文件

热门标签

归档