Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
Powershell 如何在特定单词后批量重命名文件?_Powershell_Batch File_Cmd_Batch Rename - Fatal编程技术网

Powershell 如何在特定单词后批量重命名文件?

Powershell 如何在特定单词后批量重命名文件?,powershell,batch-file,cmd,batch-rename,Powershell,Batch File,Cmd,Batch Rename,比如说 test-123-abc.mp4 测试-456-def.mp4 我想删除或-之后的所有内容。因此,结果应该是: 123.mp4 456.mp4 是否可以使用Windows cmd或批处理文件PowerShell重命名?我假设所有文件名的格式都相同。 这只是一个示例,您必须自己编写脚本。如果您面临任何问题,请发布脚本 Get-ChildItem -Path D:\Videos -File | Rename-Item -NewName { $_.Name -replace "Combo.*"

比如说

test-123-abc.mp4
测试-456-def.mp4

我想删除
-
之后的所有内容。因此,结果应该是:

123.mp4
456.mp4


是否可以使用Windows cmd或批处理文件PowerShell重命名?

我假设所有文件名的格式都相同。 这只是一个示例,您必须自己编写脚本。如果您面临任何问题,请发布脚本

Get-ChildItem -Path D:\Videos -File | Rename-Item -NewName { $_.Name -replace "Combo.*","Combo.mp4" }


听起来您希望对目录中的所有.mp4文件进行重命名。如果是这样的话,这可能会奏效。当您确信文件将被正确重命名时,从Move Item命令中删除
-WhatIf

Get-ChildItem -Filter *.mp4 |
    ForEach-Object {
        $newname = $_.Name -replace '(.*)[-_].*(\..*)','$1$2'
        Rename-Item -Path $_.FullName -NewName $newname -WhatIf
    }

PowerShell有一个替换方法,您可以使用该方法替换字符串/字符/重命名文件…阅读此…让我看看:)谢谢!当我尝试替换它时,结果仍然是test123abc.mp4:(@Enuma:如果要删除“-”或“\ux”之后的所有内容这意味着你只想保留第一个词,你的例子表明你想要中间的词。请更具体。你应该等待她更清楚,因为她想要的结果在这个问题上不对应于< > >我想删除所有的“后”或“-”。“
。对于这两个文件,结果应该是
test.mp4
。。发布了如何使用的示例replace@VincentK请看一看我的图片名称是youtube_id,所以我想删除它,只保留视频的名称!其中一个文件名是“TRG-21-Aries Combo-JM5rowKV9TU.mp4”,所以我希望它是这个名称“TRG-21-Aries Combo.mp4”@VincentK谢谢,但它仍然更改了1个文件的名称,我想要文件夹中的所有文件,这可能吗?因为“'TRG-21-Aries Combo-JM5rowKV9TU.mp4'-replace”我必须输入文件的名称。。
Get-ChildItem -Filter *.mp4 |
    ForEach-Object {
        $newname = $_.Name -replace '(.*)[-_].*(\..*)','$1$2'
        Rename-Item -Path $_.FullName -NewName $newname -WhatIf
    }