如果我在一个目录中有多个文件,并且想在它们的文件名上附加一些东西,而不是在扩展名上,我该怎么做?
我已经尝试了以下,测试文件file1.txt
和file2.txt
:
ren *.txt *1.1.txt
这会将文件重命名为file1.1.txt
和file2.txt1.1.txt
我希望文件是file1 1.1.txt
和file2 1.1.txt
这可以通过 cmd 实现,还是我需要一个 bat 文件才能做到这一点?PowerShell 呢?
如果我在一个目录中有多个文件,并且想在它们的文件名上附加一些东西,而不是在扩展名上,我该怎么做?
我已经尝试了以下,测试文件file1.txt
和file2.txt
:
ren *.txt *1.1.txt
这会将文件重命名为file1.1.txt
和file2.txt1.1.txt
我希望文件是file1 1.1.txt
和file2 1.1.txt
这可以通过 cmd 实现,还是我需要一个 bat 文件才能做到这一点?PowerShell 呢?
确保?
最长名称中有多个字符:
ren *.txt "???????????????????????????? 1.1.txt"
请参阅Windows RENAME 命令如何解释通配符?了解更多信息。
新解决方案 - 2014/12/01
对于喜欢正则表达式的人来说,有JREN.BAT - 一个混合的 JScript/批处理命令行实用程序,可以在 XP 以后的任何版本的 Windows 上运行。
jren "^.*(?=\.)" "$& 1.1" /fm "*.txt"
或者
jren "^(.*)(\.txt)$" "$1 1.1$2" /i
for /f "delims=" %%i in ('dir /b /a-d *.txt') do ren "%%~i" "%%~ni 1.1%%~xi"
If you use the simple for
loop without the /f
parameter, already renamed files will be again renamed.
步骤1:
选择所有文件 (ctrl + A)
第2步 :
然后选择重命名选项
第 3 步:
选择您的文件名...例如:myfile
它会自动重命名为myfile (01),myfile (02),,......
如果要替换空格和括号.. 继续步骤 4
第4步:
从当前文件夹打开 Windows Powershell
第 5 步:
用于将空格替换为下划线 (_)
dir | rename-item -NewName {$_.name -replace [Regex]::Escape(" "),"_"}
第 6 步:
用于更换开口支架
dir | rename-item -NewName {$_.name -replace [Regex]::Escape("("),""}
用于替换右括号
dir | rename-item -NewName {$_.name -replace [Regex]::Escape(")"),""}
@echo off
for %%f in (*.txt) do (
ren "%%~nf%%~xf" "%%~nf 1.1%%~xf"
)
试试这个批量重命名实用程序它运作良好。也许不会重新发明轮子。如果您不需要脚本,这是一个很好的方法。
我尝试将 Endoro 的命令(感谢 Endoro)直接粘贴到命令提示符中以向文件添加前缀,但遇到错误。解决方案是将 %% 减少到 %,因此:
for /f "delims=" %i in ('dir /b /a-d *.*') do ren "%~i" "Service.Enviro.%~ni%~xi"
我在 Supperuser.com 的一条小评论中发现了以下内容:
@JacksOnF1re - 我的答案中添加了新信息/技术。您实际上可以使用模糊的正斜杠技术删除您的前缀副本:ren "Copy of .txt" "//////// "
Windows RENAME命令如何解释通配符?请参阅此线程中的dbenham的答案。
我的问题略有不同,我想在文件中添加一个前缀并从一开始就删除我不需要的东西。就我而言,我有数百个枚举文件,例如:
SKMBT_C36019101512510_001.jpg
SKMBT_C36019101512510_002.jpg
SKMBT_C36019101512510_003.jpg
SKMBT_C36019101512510_004.jpg
:
:
现在我想分别将它们全部重命名为(专辑07图片#):
A07_P001.jpg
A07_P002.jpg
A07_P003.jpg
A07_P004.jpg
:
:
我用一个命令行完成了它,它就像魅力一样:
ren "SKMBT_C36019101512510_*.*" "/////////////////A06_P*.*"
笔记:
"
)"<Name Scheme>"
不是一个选项,否则它不起作用,在我们的示例中:"SKMBT_C36019101512510_*.*"
并且"/////////////////A06_P*.*"
被引用。A06_P
实际替换2510_
的和SKMBT_C3601910151
被删除的,通过使用斜杠的数量/////////////////
(17 个字符)。我对此也感到困惑......不喜欢 Windows 在批量重命名时放入的括号。在我的研究中,我决定改用 PowerShell 编写脚本。超级简单,像魅力一样工作。现在我可以在需要批量处理文件重命名时使用它......这很常见。我拍了数百张照片,相机将它们命名为 IMG1234.JPG 等...
这是我写的脚本:
# filename: bulk_file_rename.ps1
# by: subcan
# PowerShell script to rename multiple files within a folder to a
# name that increments without (#)
# create counter
$int = 1
# ask user for what they want
$regex = Read-Host "Regex for files you are looking for? ex. IMG*.JPG "
$file_name = Read-Host "What is new file name, without extension? ex. New Image "
$extension = Read-Host "What extension do you want? ex. .JPG "
# get a total count of the files that meet regex
$total = Get-ChildItem -Filter $regex | measure
# while loop to rename all files with new name
while ($int -le $total.Count)
{
# diplay where in loop you are
Write-Host "within while loop" $int
# create variable for concatinated new name -
# $int.ToString(000) ensures 3 digit number 001, 010, etc
$new_name = $file_name + $int.ToString(000)+$extension
# get the first occurance and rename
Get-ChildItem -Filter $regex | select -First 1 | Rename-Item -NewName $new_name
# display renamed file name
Write-Host "Renamed to" $new_name
# increment counter
$int++
}
我希望这对那里的人有帮助。
子罐
这适用于您的特定情况:
ren file?.txt "file? 1.1.txt"