在Powershell中重命名文件名的一部分

怪胎学生

我有一个名为“ Ben_sucksatpowershell_2018_07_13_21_22_07.txt”的文件名,我正在尝试将该文件重命名为“ b.20180713.b”

对于我正在编写的脚本,我需要重命名一系列这些文件,并且新名称需要基于原始文件名中的原始yyyy_MM_dd

我知道可以替换一部分文件名,但是我不知道如何剥离下划线,执行多次替换或在同一命令中重命名文件名。我仍然是Powershell的新手。我一直找不到我想要的东西。对于如何获取所需的指导,我将不胜感激。

Foreach ($Slave in $Slaves)
{
$ProcessedPath = "\\$Server\Directory\Processed\"
$ProcessedSlave = "$ProcessedPath\$Slave\"
    If (!(Test-Path $ProcessedSlave))
    {
        Copy-Item -Path $Eticket -Destination $ProcessedPath -Force
        ren $Eticket  -NewName {$_.Name -replace ("Ben_sucksatpowershel_", "b.") | (".txt",".b")} #of course, this doesn't work though.

    }
    Else 
    {
         Write-Host "Potato"
    }
给你

假设您有一个文件名集合,在array下面的示例中$filenames,可以使用一个简单的正则表达式来匹配原始的yyyy_MM_dd,然后替换下划线:

foreach ($filename in $filenames) {
    if ($filename -match '.*_(\d{4}_\d{2}_\d{2})_.*') {
        # $matches is a special / built-in PowerShell variable:
        # 1. $matches[0] => full regex match
        # 2. $matches[1] => first capturing group
        # 3. $matches[n] => nth capturing group
        $newName = "b.$($matches[1].Replace('_', '')).b";
        # remove -WhatIf when you're ready
        ren $filename  -NewName $newName -WhatIf;
    } else {
        Write-Warning "[$filename] does not match expected pattern"
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重命名文件,删除文件名bash脚本的一部分

重命名Linux中文件名的第一部分?

使用node.js脚本重命名文件名的一部分

如何重命名文件名的最后一部分

重命名脚本会覆盖文件名的一部分,而不是在文件名之前

如何从列表中递归重命名一部分文件名?

用文件名的一部分重命名df的每一列-R

根据另一个文件内容中的完全匹配重命名文件名的一部分

在整個目錄和子目錄中遞歸地重命名文件名的一部分

获取文件名的一部分

提取文件名的一部分

剥离文件名的一部分

检索文件名的一部分

如何基于文件名的一部分创建文件夹,以及如何使用awk提取和重命名特定的列

PowerShell 使用测试路径比较文件名的一部分

分割路径并仅取出最后一部分(文件名)Powershell

通过提取文件名和扩展名的第一部分来重命名文件夹中的文件(R 编程)

使用重命名命令重命名文件的第一部分

通过使用 bash 脚本删除现有文件名的一部分来重命名文件

获取目录中每个文件名的一部分

当文件名是python中的变量时,如何更改文件名的一部分?

linux中将文件重命名为父目录名的一部分

查找并重命名文件,将文件路径的一部分添加到文件中

Powershell:提取文件名的一部分以創建文件夾並將文件移動到文件夾中

重命名目录中的文件;新名称取决于旧名称的一部分

如何使用现有名称的一部分重命名Python中的多个文件?

仅从文件名的一部分加载文本文件中的数据

如何在Windows 7中为许多文件删除文件名的同一部分?

Android-使用文件名的一部分检查文件是否存在