标签: batch-rename

使用MSBuild批量重命名

我刚刚加入了一个没有CI流程的团队(甚至没有过夜构建)和一些粗略的开发实践.有改变这一点的愿望,所以我现在的任务是创建一个过夜构建.我已经跟着这一系列文章:创建一个包含我们所有项目的主解决方案(一些Web应用程序,一个Web服务,一些Windows服务,以及编译成命令行可执行文件的几个关闭工具); 创建了一个MSBuild脚本来自动构建,打包和部署我们的产品; 并创建了一个.cmd文件,只需单击一下即可完成.这是我现在要完成的一项任务,作为所有这一切的一部分:

该团队目前的做法是将web.config和app.config文件保留在源代码控制之外,并放入名为web.template.config和app.template.config的源代码控制文件中.目的是开发人员将.template.config文件复制到.config以获取所有标准配置值,然后能够将.config文件中的值编辑为本地开发/测试所需的任何值.出于显而易见的原因,我想自动将.template.config文件重命名为.config.最好的方法是什么?

是否可以在构建脚本本身中执行此操作,而无需在脚本中规定需要重命名的每个单独文件(在将新项目添加到解决方案时需要对脚本进行维护)?或者我可能要写一些我只是从脚本运行的批处理文件?

此外,是否有一个更好的开发解决方案,我可以建议,这将使整个过程不必要?

msbuild continuous-integration batch-rename

3
推荐指数
1
解决办法
2836
查看次数

大写文件名的第一个字母

我在文件夹中有一些文件,并希望使用Windows中的批处理脚本将所有文件名的第一个字母大写为特定扩展名.

示例上限*.m

之前:

  • foo.m
  • bar.m
  • picture.jpg

后:

  • Foo.m
  • Bar.m
  • picture.jpg

windows command-line dos batch-file batch-rename

3
推荐指数
1
解决办法
2781
查看次数

在bash脚本中获取祖父目录 - 为其路径中的目录重命名文件

我有以下脚本,当我得到一堆需要重命名为包含它们的目录名的文件时,我通常会使用它.

现在的问题是我需要将文件重命名为两个级别的目录.如何获取祖父目录以使其工作?

有了以下我得到的错误就像这个例子:"mv:无法移动./48711/zoom/zoom.jpg./48711/zoom/./48711/zoom.jpg:没有这样的文件或目录".这是在CentOS 5.6上运行的.

我希望最终文件命名为:48711.jpg

#!/bin/bash

function dirnametofilename() {
  for f in $*; do
    bn=$(basename "$f")
    ext="${bn##*.}"
    filepath=$(dirname "$f")
    dirname=$(basename "$filepath")
    mv "$f" "$filepath/$dirname.$ext"
  done
}

export -f dirnametofilename

find . -name "*.jpg" -exec bash -c 'dirnametofilename "{}"'  \;

find .
Run Code Online (Sandbox Code Playgroud)

linux bash centos path batch-rename

3
推荐指数
2
解决办法
7789
查看次数

使用Python重命名目录中的所有文件

我有一个目录,其中包含许多具有以下格式的文件:

1 or 2 numbers_S followed by 1 or 2 numbers_L001_R1 or R2_001.fastq

Examples: 1_S1_L001_R1_001.fastq or 14_S14_L001_R2_001.fastq
Run Code Online (Sandbox Code Playgroud)

我希望文件名是这样的: 1_R1.fastq 14_R2.fastq

我已经想出了regexp反映文件名的内容,并且可以成功地进行搜索和替换TextWrangler.以下是我提出的正则表达式:

Search: (\d+)\wS\d+\wL001\w(R\d)\w001(\.fastq)
Replace: \1_\2\3 (or $1_$2$3 depending on the program)
Run Code Online (Sandbox Code Playgroud)

但是,我想知道如何使用简单的Python脚本批量重命名文件.我很感激任何建议.

谢谢!

python regex rename batch-rename

3
推荐指数
1
解决办法
9067
查看次数

在 BASH 中从文件名中批量删除带有特殊字符的子字符串

我的目录中有一个文件列表:

opencv_calib3d.so2410.so
opencv_contrib.so2410.so
opencv_core.so2410.so
opencv_features2d.so2410.so
opencv_flann.so2410.so
opencv_highgui.so2410.so
opencv_imgproc.so2410.so
opencv_legacy.so2410.so
opencv_ml.so2410.so
opencv_objdetect.so2410.so
opencv_ocl.so2410.so
opencv_photo.so2410.so
Run Code Online (Sandbox Code Playgroud)

它们是批量重命名的一系列错误的产物,现在我不知道如何从它们中删除中间的“.so”。例如:

opencv_ocl.so2410.so 应该 opencv_ocl2410.so

这是我尝试过的:

# attempt 1, replace the (first) occurrence of `.so` from the filename
for f in opencv_*; do mv "$f" "${f#.so}"; done

# attempt 2, escape the dot
for f in opencv_*; do mv "$f" "${f#\.so}"; done

# attempt 3, try to make the substring a string
for f in opencv_*; do mv "$f" "${f#'.so'}"; done

# attempt 4, combine 2 and 3 …
Run Code Online (Sandbox Code Playgroud)

linux bash filenames batch-rename batch-processing

3
推荐指数
1
解决办法
2163
查看次数

.bat用于批量重命名以增加fname中的数字

我有一个.cbr的大文件夹,我按照问题编号重命名它们以正确排序它们.我需要在ren行中包含什么才能让每个文件通过windows命令提示符增加文件名中的数字?我会经常这样做,所以我会把它变成一个.bat文件.

例如,其中n =初始数且m =最终数:n.cbr,(n + 1).cbr,...,(m-1).cbr,m.cbr

.bat因此:

ren *.cbz *.cbr
ren *.cbr <increment numbers n through m>.cbr
Run Code Online (Sandbox Code Playgroud)

或者,如何修剪每个文件名,以便只在扩展名之前留下数字?(从issue1.cbr到1.cbr)通过.bat或脚本宿主文件?

wsh batch-file command-prompt batch-rename

2
推荐指数
1
解决办法
2万
查看次数

使用 bash 删除部分文件名

为什么这个脚本不起作用?

for filename in bre*; do 
    rename 's/bre//'; 
done
Run Code Online (Sandbox Code Playgroud)

我在目录中有以 bre 开头的文件,我想从文件名中删除这部分。它正在运行,什么都不会发生,它还没有完成。谢谢

bash loops glob file-rename batch-rename

2
推荐指数
1
解决办法
31
查看次数

for 循环命令中的 %f 是什么?

从这个例子就在这里。 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/for#additional-references

for %f in (*.doc *.txt) do type %f

在前面的示例中,当前目录中具有 .doc 或 .txt 扩展名的每个文件都将替换 %f 变量,直到显示每个文件的内容。要在批处理文件中使用此命令,请将每个出现的 %f 替换为 %%f。否则,该变量将被忽略并显示错误消息。

这些与本示例中的变量不同吗?

https://www.tutorialspoint.com/batch_script/batch_script_variables.htm

set message=Hello World 
echo %message%
Run Code Online (Sandbox Code Playgroud)

这些叫什么?我如何操纵它们?

windows batch-file batch-rename

2
推荐指数
1
解决办法
2716
查看次数

如何将文件名的一部分移动到不同的位置

我在一个文件夹中有一组文件。我想通过将文件名的一部分移动到不同位置来编辑所有文件名。这是我所拥有的样本:

Par1_MD_0_5_AL_2_ND_4_Dist_0_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_ND_4_Dist_1_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_ND_6_Dist_2_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_ND_8_Dist_3_Pot_Drop_out.txt  
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

Par1_MD_0_5_AL_2_Dist_0_ND_4_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_Dist_1_ND_4_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_Dist_2_ND_6_Pot_Drop_out.txt        
Par1_MD_0_5_AL_2_Dist_3_ND_8_Pot_Drop_out.txt
Run Code Online (Sandbox Code Playgroud)

基本上,我想在“Dist_(number)”之后放置“ND_(number)”

感谢您的帮助。

regex powershell file-rename batch-rename rename-item-cmdlet

2
推荐指数
1
解决办法
89
查看次数

Powershell 根据前缀向文件名添加后缀时出错

所以我有一个 jpg 格式的文件夹中的文件列表,如下所示:

"1.George ABCD.jpg"
"2.George ABCD.jpg"
"3.Mead ABCD.jpg"
Run Code Online (Sandbox Code Playgroud)

所以我想要做的是重命名它们,以便前缀成为像这样的后缀:

"George ABCD 1.jpg"
"George ABCD 2.jpg"
"Mead ABCD 2.jpg"
Run Code Online (Sandbox Code Playgroud)

我想让它通过子文件夹递归工作。

我有一个我试过的代码段在这里工作:

ls -Recurse |? BaseName -match '^(\d+\.)([^0-9].*)$' |ren -new {"{0}{1}{2}" -f $matches[2],' ', $matches[1].substring(0,1)+ $_.extension}
cmd /c pause
Run Code Online (Sandbox Code Playgroud)

现在的问题是我的一段代码目前不适用于双位数名称,例如:

"11.George ABCD.jpg"
Run Code Online (Sandbox Code Playgroud)

相反,它的作用是吐出

"George ABCD 1.jpg"
Run Code Online (Sandbox Code Playgroud)

这不是我想要的,我知道这与一位或多位数字的正则表达式 d+ 有关,但我不确定我应该使用什么来使其对一位或多位数字正常工作。

那就是我希望“11.George ABCD.jpg”的输出为“George ABCD 11.jpg”。

有什么办法可以解决这个问题吗?

regex powershell rename file-rename batch-rename

2
推荐指数
2
解决办法
96
查看次数