PowerShell script aanpassen, naamverandering lukt niet goed.

Pagina: 1
Acties:

Vraag


  • Tijgert
  • Registratie: December 2001
  • Laatst online: 11-05 14:26

Tijgert

Let the Zen flow. Shit a leak!

Topicstarter
Ik wil een script schrijven dat jaartallen in meerdere bestanden in een map hernoemt.
Het jaartal van alle bestanden moet vervangen worden voor dat jaartal met haakjes er omheen.

Van bijvoorbeeld refresh.2002.txt naar refresh.(2002).txt

Met:
dir | rename-item -NewName {$_.name -replace ".2002.",".(2002)."}
Kom ik al heel ver, maar dan ga ik voor elk jaar een regel nodig hebben en dat wil ik graag kleiner en simpeler.

Ik wil dus het script zo aanpassen dat het niet specifiek ".2002." hernoemt, maar dat elke jaar 2000 jaartal hernoemt wordt, of 1900 jaartal for that matter. Elk jaar ".20xx." wordt dan hernoemt naar ".(20xx)." (waar xx dus de enkele en tientallen jaren zijn).

Helaas lukt me dit niet, maar ik proef dat ik dichtbij ben. Kan iemand me helpen?

Medion X40 watercooled laptop, i9+4090, met Eluktro bios, 32GB DDR5 6400, 2x8TB MP600 Pro XT, 32" UHD monitor en wat kekke Logitech spullen.

Alle reacties


Acties:
  • +1 Henk 'm!

  • Microkid
  • Registratie: Augustus 2000
  • Laatst online: 07:45

Microkid

Frontpage Admin / Moderator PW/VA

Smile

Niet getest. Dank aan ChatGPT ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
param (
    [string]$folderPath
)

if (!(Test-Path -Path $folderPath -PathType Container)) {
    Write-Output "The specified folder path is invalid."
    exit
}

Get-ChildItem -Path $folderPath -File | ForEach-Object {
    $file = $_
    $newName = $file.Name -replace '(?<=\b)(\d{4})(?=\b)', '($1)'
    
    if ($newName -ne $file.Name) {
        $newPath = Join-Path -Path $folderPath -ChildPath $newName
        Rename-Item -Path $file.FullName -NewName $newName
        Write-Output "Renamed: $($file.Name) -> $newName"
    }
}

Write-Output "Renaming complete!"

# Usage:
# Save this script as RenameFiles.ps1
# Run it in PowerShell: ./RenameFiles.ps1 -folderPath "C:\path\to\folder"

4800Wp zonnestroom met Enphase
Life's a waste of time. Time's a waste of life. Get wasted all the time and you'll have the time of your life.


Acties:
  • +1 Henk 'm!

  • Tijgert
  • Registratie: December 2001
  • Laatst online: 11-05 14:26

Tijgert

Let the Zen flow. Shit a leak!

Topicstarter
Oh my, in ChatGPT? Gewoon vragen dus?
Hoe heb je die vraag gesteld dan dat dit er precies zo uit kwam?
Het werkt overigens prima, afgezien van dat jaartallen die al haakjes hadden er nog extra haakjes omheen krijgen.

ok, ik ben officieel oud... Gewoon intikken in ChatGPT:

I would like a powershell script that adds parentheses around the year in a filename, but not if the year already has parentheses.

Ik wilde verdorie nog dankjewel zeggen ook (hey, je weet nooit of ze beleefdheid onthouden voor wanneer the great uprising begint _/-\o_ )

Dank je voor de tip, A+

[ Voor 46% gewijzigd door Tijgert op 27-02-2025 21:36 ]

Medion X40 watercooled laptop, i9+4090, met Eluktro bios, 32GB DDR5 6400, 2x8TB MP600 Pro XT, 32" UHD monitor en wat kekke Logitech spullen.


Acties:
  • 0 Henk 'm!

  • Tijgert
  • Registratie: December 2001
  • Laatst online: 11-05 14:26

Tijgert

Let the Zen flow. Shit a leak!

Topicstarter
Kleine toevoeging vwb ChatGPT en het genereren van scripts:

Ik was het eigen gegenereerde script kwijt maar ik vroeg ChatGPT met exact dezelfde vraag het nog eens te doen. Het script wat daaruit kwam werkte niet. Exact dezelfde vraag in dezelfde syntax nog eens stellende kwam er weer een ander script uit en daarna weer een andere. De laatste werkte wel.

Ook een extra wijziging die ik wilde aan laten brengen door ChatGPT resulteerde in meerdere verschillende scripts die niet werkten, telkens dezelfde vraag herhalende, tot de laatste het wel deed.

FYI.

[ Voor 5% gewijzigd door Tijgert op 15-03-2025 17:45 ]

Medion X40 watercooled laptop, i9+4090, met Eluktro bios, 32GB DDR5 6400, 2x8TB MP600 Pro XT, 32" UHD monitor en wat kekke Logitech spullen.