簡體   English   中英

如何使用Powershell設置內容重命名文件擴展名

[英]How To Rename File Extension Using Powershell Set-Content

我有以下Powershell代碼,打算在其中掃描文件夾以查找作為.TXT文件放入的新文件,並用|替換逗號。 (管道符號),從文件中刪除雙引號,然后將文件從.TXT重命名為.CSV並將其保存到輸出文件夾。

param($InputDIR,$OutputDIR)

$Dir = get-childitem $InputDIR -Recurse

$CSVList = $Dir | where {$_.Name -like "*.TXT"}
Write-Host -ForegroundColor White -BackgroundColor Blue "Scanning For Input Files In $InputDIR"
Foreach ($csvfile in $CSVList )
{
#ASSIGN THE CSV FILE INTO A VARIABLE.
$CSVFullFileName = $csvfile.FullName
$CSVFileName = $csvfile.Name
$InputFile = (Join-Path $InputDIR $CSVFileName)

Get-Content $InputFile | ForEach-Object { $_ -replace ",", "|" } | ForEach-Object { $_ -replace """", "" } | Set-Content ($InputFile+".csv")

Write-Host -ForegroundColor White -BackgroundColor Blue "Working on $CSVFileName"
Write-Host -ForegroundColor White -BackgroundColor Blue "Object Scan: $_"
#Remove-Item $InputFile
#Rename-Item ($InputFile+".csv") $InputFile

}

我所困擾的問題是,“設置內容”輸出的文件擴展名為“ .TXT”,並帶有“ .CSV”擴展名,類似於以下內容:“ myfile.TXT.CSV”。

我該如何做我想做的事,同時又將新文件輸出為.CSV擴展名而沒有原始的.TXT擴展名?

嘗試這個:

param($InputDIR,$OutputDIR)

$Dir = get-childitem $InputDIR -Recurse

$CSVList = $Dir | where {$_.Name -like "*.TXT"}
Write-Host -ForegroundColor White -BackgroundColor Blue "Scanning For Input Files In $InputDIR"
Foreach ($csvfile in $CSVList )
{
#ASSIGN THE CSV FILE INTO A VARIABLE.
$CSVFullFileName = $csvfile.FullName
$CSVFileName = $csvfile.Name
$InputFile = (Join-Path $InputDIR $CSVFileName)
$newFileName = "{0}.csv" -f ([io.path]::GetFileNameWithoutExtension($CSVFileName))
$newFilePath = (Join-Path $InputDIR $newFileName)

Get-Content $InputFile | ForEach-Object { $_ -replace ",", "|" } | ForEach-Object { $_ -replace """", "" } | Set-Content $newFilePath

Write-Host -ForegroundColor White -BackgroundColor Blue "Working on $CSVFileName"
Write-Host -ForegroundColor White -BackgroundColor Blue "Object Scan: $_"
#Remove-Item $InputFile
#Rename-Item ($InputFile+".csv") $InputFile

我使用兩個步驟來確定新文件的路徑:

  1. 檢索不帶擴展名的文件名(使用[io.path] :: GetFileNameWithoutExtension ),並使用格式字符串向其添加“ .csv”
  2. 使用新文件名加入目錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM