使用输入文件名保存为新文件,只需添加一些后缀-Powershell

使用输入文件名保存为新文件,只需添加一些后缀-Powershell,powershell,Powershell,所以我知道标题让人困惑,我为此道歉 我需要做的是不写在同一个文件中,只需输入路径和名称就可以轻松完成,它将在该路径为我创建文件 但这不是我想做的,我想获取输入文件名并为其添加后缀,例如,输入文件名是ABB,添加后缀后,它将成为ABB Clean 我如何通过设置内容实现这一点,或者是否有其他方式不需要我更改代码 Function Get-FileName($initialDirectory) { [System.Reflection.Assembly]::LoadWithPartialName("

所以我知道标题让人困惑,我为此道歉

我需要做的是不写在同一个文件中,只需输入路径和名称就可以轻松完成,它将在该路径为我创建文件

但这不是我想做的,我想获取输入文件名并为其添加后缀,例如,输入文件名是
ABB
,添加后缀后,它将成为
ABB Clean

我如何通过设置内容实现这一点,或者是否有其他方式不需要我更改代码

Function Get-FileName($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | 
Out-Null

$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "SCD (*.scd)| *.scd|CID (*.cid)| *.cid|ICD (*.icd) | *.icd | All Files| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$OpenFileDialog.filename
}
#"C:\Users\UserName\Desktop"
$inputfile = Get-FileName
#$inputdata = get-content $inputfile

#$configFiles = Read-Host 'Enter Complete directory to file'
(Get-Content $inputfile -Raw) |
Foreach-Object { 
$_  -replace '<Terminal .+\/>', '' `
    -replace '(?s)<Terminal .*?>(.|\s)*?</Terminal>', '' `
    -replace '(?s)<Private type="ABB.*?>(.|\s)*?</Private>', '' `
    -replace '(?s)<ConnectivityNode.*?>(.|\s)*?</ConnectivityNode>', ''       
} |

Set-Content Rename-Item "Clean - " + $inputfile 

(GC $inputfile)|?{$_.Trim(" `t")}|SC $inputfile
函数获取文件名($initialDirectory)
{
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”)|
出空
$OpenFileDialog=新建对象System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory=$initialDirectory
$OpenFileDialog.filter=“SCD(*.SCD)|*.SCD | CID(*.CID)|*.CID | ICD(*.ICD)|*.ICD |*
$OpenFileDialog.ShowDialog()| Out Null
$OpenFileDialog.filename
}
#“C:\Users\UserName\Desktop”
$inputfile=获取文件名
#$inputdata=获取内容$inputfile
#$configFiles=读取主机“输入文件的完整目录”
(获取内容$inputfile-原始)|
Foreach对象{
$\替换“”,“”`
-替换“(?s)(.|\s)*?”`
-替换“(?s)
  • 要将文件名拆分为路径和文件,请使用
    拆分路径
    (或使用文件对象的属性目录、名称/基本名称、扩展名)

函数获取文件名($initialDirectory){
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”)| Out Null
$OpenFileDialog=新建对象System.Windows.Forms.OpenFileDialog
$OpenFileDialog.initialDirectory=$initialDirectory
$OpenFileDialog.filter=“SCD(*.SCD)|*.SCD | CID(*.CID)|*.CID | ICD(*.ICD)|*.ICD |*
$OpenFileDialog.ShowDialog()| Out Null
返回$OpenFileDialog.filename
}
$inputfile=获取项目(获取文件名)
$OutputFile=连接路径(拆分路径$inputfile)(“{0}-Clean{1}”-f$inputfile.BaseName,$inputfile.Extension)
(获取内容$inputfile-Raw)| Foreach对象{
$\替换“”,“”`
-替换“(?s)(.|\s)*?”`
-替换“(?s)
Function Get-FileName($initialDirectory) {
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
    $OpenFileDialog.initialDirectory = $initialDirectory
    $OpenFileDialog.filter = "SCD (*.scd)| *.scd|CID (*.cid)| *.cid|ICD (*.icd) | *.icd | All Files| *.*"
    $OpenFileDialog.ShowDialog() | Out-Null
    return $OpenFileDialog.filename
}

$inputfile  = Get-Item (Get-FileName)
$OutputFile = Join-Path (Split-Path $inputfile) ("{0}-Clean{1}"  -f $inputfile.BaseName,$inputfile.Extension)

(Get-Content $inputfile -Raw) | Foreach-Object { 
    $_  -replace '<Terminal .+\/>', '' `
        -replace '(?s)<Terminal .*?>(.|\s)*?</Terminal>', '' `
        -replace '(?s)<Private type="ABB.*?>(.|\s)*?</Private>', '' `
        -replace '(?s)<ConnectivityNode.*?>(.|\s)*?</ConnectivityNode>', ''
} | Set-Content $OutputFile