批处理脚本 - 根据单词重命名文件
Batch script - rename file based on words
抱歉,我是批处理脚本编程的新手。
问题
我想重命名 windows 目录中的一些文件。
示例文件如下(大小只是一个指标):
PP123_MQ_large.png <- size: 30kb
PP123_MQ_medium.png <- size: 50kb
PP123_MQ_small.png <- size: 60kb
PP666_MQ.png <- size: 68kb
PP234_MQ3_small.png <- size: 31kb
PP789_MQ2_large.png <- size: 15kb
对于包含单词 large
的文件,我想将其重命名为 small
。
对于包含单词 small
的文件,我想将其重命名为 large
。
对于包含单词 medium
的文件,我希望它保持原样。
对于没有单词 small
或 large
的文件,我希望它保持原样。
预期结果
PP123_MQ_small.png <- size: 30kb changed to small
PP123_MQ_medium.png <- size: 50kb remain untouch because is medium
PP123_MQ_large.png <- size: 60kb changed to large
PP666_MQ.png <- size: 68kb remain untouch because no small or large
PP234_MQ3_large.png <- size: 31kb changed to large
PP789_MQ2_small.png <- size: 15kb changed to small
问题
以下是我的批处理脚本:
cd C:\Users\mydir
ren *_large.png *_tempsmall.png
ren *_small.png *_large.png
ren *_tempsmall.png *_small.png
但是对于只有small
的文件,比如PP234_MQ3_small.png
,它会生成额外的文件PP234_MQ3_large.png
。
对于只有large
的文件,比如PP789_MQ2_large.png
,会生成额外的文件PP789_MQ2_small.png
.
我只想重命名现有文件,而不是生成额外的文件,我该如何改进我的脚本?
试一试:
cd /d "C:\users\mydir"
ren *_small.png *_large.png_tmp
ren *_large.png *_small.png_tmp
ren *.png_tmp *.png
我们将所有内容 small
移动到 large
,将 _tmp
移动到扩展名,反之亦然。然后我们重命名所有文件删除 _tmp
此外,作为一项安全功能,如上所示使用 cd /d
,如果是您自己的配置文件则更好,将 cd /d "c:\Users\mydir"
替换为 cd /d "%userprofile%"
抱歉,我是批处理脚本编程的新手。
问题
我想重命名 windows 目录中的一些文件。
示例文件如下(大小只是一个指标):
PP123_MQ_large.png <- size: 30kb
PP123_MQ_medium.png <- size: 50kb
PP123_MQ_small.png <- size: 60kb
PP666_MQ.png <- size: 68kb
PP234_MQ3_small.png <- size: 31kb
PP789_MQ2_large.png <- size: 15kb
对于包含单词 large
的文件,我想将其重命名为 small
。
对于包含单词 small
的文件,我想将其重命名为 large
。
对于包含单词 medium
的文件,我希望它保持原样。
对于没有单词 small
或 large
的文件,我希望它保持原样。
预期结果
PP123_MQ_small.png <- size: 30kb changed to small
PP123_MQ_medium.png <- size: 50kb remain untouch because is medium
PP123_MQ_large.png <- size: 60kb changed to large
PP666_MQ.png <- size: 68kb remain untouch because no small or large
PP234_MQ3_large.png <- size: 31kb changed to large
PP789_MQ2_small.png <- size: 15kb changed to small
问题
以下是我的批处理脚本:
cd C:\Users\mydir
ren *_large.png *_tempsmall.png
ren *_small.png *_large.png
ren *_tempsmall.png *_small.png
但是对于只有small
的文件,比如PP234_MQ3_small.png
,它会生成额外的文件PP234_MQ3_large.png
。
对于只有large
的文件,比如PP789_MQ2_large.png
,会生成额外的文件PP789_MQ2_small.png
.
我只想重命名现有文件,而不是生成额外的文件,我该如何改进我的脚本?
试一试:
cd /d "C:\users\mydir"
ren *_small.png *_large.png_tmp
ren *_large.png *_small.png_tmp
ren *.png_tmp *.png
我们将所有内容 small
移动到 large
,将 _tmp
移动到扩展名,反之亦然。然后我们重命名所有文件删除 _tmp
此外,作为一项安全功能,如上所示使用 cd /d
,如果是您自己的配置文件则更好,将 cd /d "c:\Users\mydir"
替换为 cd /d "%userprofile%"