Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在cmd中重命名多个文件_Windows_Batch File_Cmd_Wildcard_Rename - Fatal编程技术网

Windows 在cmd中重命名多个文件

Windows 在cmd中重命名多个文件,windows,batch-file,cmd,wildcard,rename,Windows,Batch File,Cmd,Wildcard,Rename,如果我在一个目录中有多个文件,并且想在它们的文件名中添加一些内容,但不想在扩展名中添加内容,我该怎么做 我用测试文件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呢?

试试这个,效果很好。也许不能重新发明轮子。如果你不需要脚本,这是一个很好的方法

@echo off
for %%f in (*.txt) do (
    ren "%%~nf%%~xf" "%%~nf 1.1%%~xf"
)

如果使用简单的
for
循环而不使用
/f
参数,则已重命名的文件将再次重命名。

请确保
中的字符数大于最长名称中的字符数:

ren *.txt "???????????????????????????? 1.1.txt"
有关更多信息,请参阅

新解决方案-2014/12/01

对于那些喜欢正则表达式的人来说,有一个混合的JScript/批处理命令行实用程序,可以在XP以后的任何Windows版本上运行

jren "^.*(?=\.)" "$& 1.1" /fm "*.txt"


我对此也感到困惑。。。不喜欢windows在批量重命名时插入的括号。在我的研究中,我决定用PowerShell编写一个脚本。超级简单,工作起来很有魅力。现在我可以在需要批量处理文件重命名时使用它。。。这是经常发生的。我拍了数百张照片,相机把它们命名为IMG1234.JPG等等

这是我写的剧本:

#文件名:bulk_file_rename.ps1
#作者:subcan
#PowerShell脚本,用于将文件夹中的多个文件重命名为
#不带(#)递增的名称
#创建计数器
$int=1
#询问用户他们想要什么
$regex=读取主机“您正在查找的文件的regex?ex.IMG*.JPG”
$file_name=读取主机“没有扩展名的新文件名是什么?例如新图像”
$extension=读取主机“您想要什么扩展?例如.JPG”
#获取符合正则表达式的文件总数
$total=获取子项-过滤器$regex |度量
#while循环以使用新名称重命名所有文件
而($int-le$total.Count)
{
#显示你在循环中的位置
写入主机“在while循环内”$int
#为指定的新名称创建变量-
#$int.ToString(000)确保3位数字001、010等
$new\u name=$file\u name+$int.ToString(000)+$extension
#获取第一个实例并重命名
Get ChildItem-Filter$regex | select-First 1 | Rename Item-NewName$new|u name
#显示重命名的文件名
将主机“重命名为”$new\u name
#增量计数器
$int++
}
我希望这对其他人有所帮助


subcan

下面的命令将执行此任务

forfiles /M *.txt /C "cmd /c rename @file \"@fname 1.1.txt\""

来源:

我试图将endro的命令(谢谢endro)直接粘贴到命令提示符中,以便为文件添加前缀,但遇到了一个错误。解决方案是将%%减少到%,因此:

for /f "delims=" %i in ('dir /b /a-d *.*') do ren "%~i" "Service.Enviro.%~ni%~xi"

第1步:

选择所有文件(ctrl+A)

第二步:

然后选择重命名选项

第三步:

选择您的文件名。。。例如:myfile

它会自动重命名为myfile(01)、myfile(02),,….

如果要替换空格和括号。。继续步骤4

第4步:

从当前文件夹打开Windows Powershell

第五步:

用于将空白替换为下划线(389;)

第6步:

用于更换开放式支架

 dir | rename-item -NewName {$_.name -replace [Regex]::Escape("("),""}
用于更换封闭支架

 dir | rename-item -NewName {$_.name -replace [Regex]::Escape(")"),""}

这适用于您的具体情况:

ren file?.txt "file? 1.1.txt" 

我在Supperuser.com上的一条小评论中发现了以下内容:

@JacksOnF1re-新的信息/技术添加到我的答案中。你可以 实际上,使用模糊的正斜杠删除前缀的副本 技巧:ren“复制.txt”“//”

在这条线里,你可以看到

我的问题略有不同,我想在文件中添加一个前缀,并从一开始就删除我不需要的内容。就我而言,我有几百个枚举文件,例如:

SKMBT_C36019101512510_001.jpg
SKMBT_C36019101512510_002.jpg
SKMBT_C36019101512510_003.jpg
SKMBT_C36019101512510_004.jpg
:
:
现在我想分别将它们重命名为(相册07图片#):

我只用一个命令行就完成了,它工作起来很有魅力:

ren "SKMBT_C36019101512510_*.*" "/////////////////A06_P*.*"
注:

  • 引用(
    )“不是一个选项,否则它不起作用,在我们的示例中:
    “SKMBT_C3601910; 1512510_**”
    “///////A06_P**”
    被引用
  • 我必须准确地计算我要删除的字符数,并为我的新字符留出空间:
    A06\u P
    实际上替换了
    2510\u
    ,而
    SKMBT\u c360191151
    被删除,方法是精确地使用斜杠数
    ///code>(17个字符)
  • 我建议在应用上述方法之前复制您的文件(进行备份)

  • 有很多文件吗?一个文件夹中大约有90个文件。如果需要,也可以只使用UI来完成。选择所有文件,将其中一个文件重命名为“文件”,它将显示为文件(1)、文件(2)、文件(3)、文件(4)@Morne,您也可以使用Massive File Renamer之类的工具绝对最大文件名长度为255个字符。但大多数情况下的实际限制较小,因为Windows UI支持的最大总路径长度为259个字符。总路径长度包括卷、文件夹和文件名信息,以及空终止符。请参阅更多信息。感谢您介绍jren,它正是我所需要的,简单快捷。顺便说一句,使用它可以像
    \d
    \w
    @Armfoot-是的-jren使用标准的JSCRIPT正则表达式,因此支持速记字符类。您可以阅读。+1我认为这是最容易记住的一个,非常简单这比cmd的
    语法更简单,但让人失望的是,它必须为每次迭代生成一个新的cmd.exe进程
    
    ren file?.txt "file? 1.1.txt" 
    
    SKMBT_C36019101512510_001.jpg
    SKMBT_C36019101512510_002.jpg
    SKMBT_C36019101512510_003.jpg
    SKMBT_C36019101512510_004.jpg
    :
    :
    
    A07_P001.jpg
    A07_P002.jpg
    A07_P003.jpg
    A07_P004.jpg
    :
    :
    
    ren "SKMBT_C36019101512510_*.*" "/////////////////A06_P*.*"