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]
}