Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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_Rename - Fatal编程技术网

PowerShell不断向我的重命名添加句点

PowerShell不断向我的重命名添加句点,powershell,rename,Powershell,Rename,我使用的代码有问题 cd "C:\Users\eulla\Documents\GAB\ZZZZ" Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Insurance Marketing Solutions PPLLC","IMS-PPLLC" } Get-ChildItem -Path "*Pain*" -File | Rename-Item -NewName {$_.Name -replace '(?<=

我使用的代码有问题

cd "C:\Users\eulla\Documents\GAB\ZZZZ"
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Insurance Marketing Solutions PPLLC","IMS-PPLLC" }
Get-ChildItem -Path "*Pain*" -File | Rename-Item -NewName {$_.Name -replace '(?<=\bPain\b).*(?= -)'}
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "PAIN","Pain" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "SCAR","Scar" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "DERMATITIS","Dermatitis" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "ANTI-FUNGAL","Anti-Fungal" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "METABOLIC","Metabolic " }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "MUSCLE RELAXANT","Muscle Relaxant" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "ALLERGY","Allergy" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Psoriasis","Dermatitis" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "PSORIASIS","Dermatitis" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "_"," " }
Get-ChildItem | Rename-Item -NewName { $_.Name -replace '(.*?)- \w+(.*)', '${1}- Dr.${2}' }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "  "," " }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Dr. Wilson Hall","Dr. Hall" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Dr. Foster Chapman","Dr. Chapman" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Dr. Scott Hill","Dr. M Hill" }
Get-ChildItem -Recurse | Rename-Item -NewName { $_.Name -replace "Dr. Hill","Dr. S Hill" }
cd“C:\Users\eulla\Documents\GAB\ZZZZ”
Get-ChildItem-Recurse | Rename Item-NewName{$\.Name-替换“保险营销解决方案PPLLC”、“IMS-PPLLC”}

Get-ChildItem-Path“*Pain*”-File | Rename Item-NewName{$\ Name-replace'(?代替或反复使用
Get-ChildItem
Rename Item
(使您陷入麻烦的一个原因),获取文件列表一次,然后使用新的计算名称重命名它们一次

大概是这样的:

# create a Hashtable with all uppercase strings you want to replace
$upper2lower = @{
    'PAIN'            = 'Pain'
    'SCAR'            = 'Scar'
    'DERMATITIS'      = 'Dermatitis'
    'ANTI-FUNGAL'     = 'Anti-Fungal'
    'METABOLIC'       = 'Metabolic'
    'MUSCLE RELAXANT' = 'Muscle Relaxant'
    'ALLERGY'         = 'Allergy'
    'PSORIASIS'       = 'Dermatitis'  # shouldn't this be 'Psoriasis' ??
}

Get-ChildItem -Path "C:\Users\eulla\Documents\GAB\ZZZZ" -Recurse -File | ForEach-Object {
    $newName = $_.Name -replace "Insurance Marketing Solutions PPLLC","IMS-PPLLC"
    $newName = $newName -replace '(?<=\bPain\b).*(?= -)'
    # convert the uppercase stuff using the $upper2lower Hashtable
    foreach ($name in $upper2lower.Keys) {
        $newName = $newName -replace $name, $upper2lower[$name]
    }
    $newName = $newName -replace '_', ' ' -replace '(.*?)- \w+(.*)', '${1}- Dr.${2}' -replace '\s+', ' '

    # now do the names. because these have dots you need to escape for regex
    $newName = $newName -replace [regex]::Escape('Dr. Wilson Hall'),'Dr. Hall'
    $newName = $newName -replace [regex]::Escape('Dr. Foster Chapman'),'Dr. Chapman'
    $newName = $newName -replace [regex]::Escape('Dr. Scott Hill'),'Dr. M Hill'
    $newName = $newName -replace [regex]::Escape('Dr. Hill'),'Dr. S Hill'
    $newName = $newName -replace [regex]::Escape('Dr. Benjamin Frizner'), 'Dr. Frizner'

    # finally rename the file
    $_ | Rename-Item -NewName $newName -Force
}

当你身边有很多医生时,这有助于保持代码的可读性。

或者反复使用
Get ChildItem
Rename Item
(一个让你陷入麻烦的原因),获取文件列表一次,然后使用新的计算名称重命名它们一次

大概是这样的:

# create a Hashtable with all uppercase strings you want to replace
$upper2lower = @{
    'PAIN'            = 'Pain'
    'SCAR'            = 'Scar'
    'DERMATITIS'      = 'Dermatitis'
    'ANTI-FUNGAL'     = 'Anti-Fungal'
    'METABOLIC'       = 'Metabolic'
    'MUSCLE RELAXANT' = 'Muscle Relaxant'
    'ALLERGY'         = 'Allergy'
    'PSORIASIS'       = 'Dermatitis'  # shouldn't this be 'Psoriasis' ??
}

Get-ChildItem -Path "C:\Users\eulla\Documents\GAB\ZZZZ" -Recurse -File | ForEach-Object {
    $newName = $_.Name -replace "Insurance Marketing Solutions PPLLC","IMS-PPLLC"
    $newName = $newName -replace '(?<=\bPain\b).*(?= -)'
    # convert the uppercase stuff using the $upper2lower Hashtable
    foreach ($name in $upper2lower.Keys) {
        $newName = $newName -replace $name, $upper2lower[$name]
    }
    $newName = $newName -replace '_', ' ' -replace '(.*?)- \w+(.*)', '${1}- Dr.${2}' -replace '\s+', ' '

    # now do the names. because these have dots you need to escape for regex
    $newName = $newName -replace [regex]::Escape('Dr. Wilson Hall'),'Dr. Hall'
    $newName = $newName -replace [regex]::Escape('Dr. Foster Chapman'),'Dr. Chapman'
    $newName = $newName -replace [regex]::Escape('Dr. Scott Hill'),'Dr. M Hill'
    $newName = $newName -replace [regex]::Escape('Dr. Hill'),'Dr. S Hill'
    $newName = $newName -replace [regex]::Escape('Dr. Benjamin Frizner'), 'Dr. Frizner'

    # finally rename the file
    $_ | Rename-Item -NewName $newName -Force
}

当你身边有很多医生时,这有助于保持代码的可读性。

什么是产生不需要的输出或错误的输入字符串?@Lee_Dailey更新了问题你似乎没有损坏的两行的原始文本。
Mokhashi
原件在哪里?'Koller'原件在哪里这些真人或假名字???@Lee_Dailey抱歉粘贴了错误的信息。无论如何,这并不重要,因为此代码
Get ChildItem |重命名Item-NewName{$\u.Name-replace'(.*)-\w+(.*),${1}-Dr${2}
应该将医生(Benjamin)的名字替换为“Dr.”如果医生的名字与患者的名字相同,则不必按照上面的例子更改患者的名字。在我的文件夹中,总共有63名医生的名字不同。产生不需要的输出或错误的输入字符串是什么?@Lee_Dailey更新了问题您似乎没有e损坏的两行原始文本。
Mokhashi
original在哪里?`Koller`在哪里?这些是真名还是假名?@Lee_Dailey抱歉粘贴了错误的信息。无论如何,这并不重要,因为此代码
Get ChildItem | Rename Item-NewName{$.Name-replace'(.*?-\w+(.*),${1}-Dr${2}
应将医生(Benjamin)的名字替换为“Dr.”,而不必按照上面的Anthony Tolton示例更改患者的名字,以防医生的名字与患者的名字相同。在我的文件夹中,总共有63名不同名字的医生。
foreach ($doctor in $doctors.Keys) {
    $newName = $newName -replace [regex]::Escape($doctor), $doctors[$name]
}