Renaming Files by Padding Numbers with PowerShell from Blog Posts – SQLServerCentral


Some time ago I had downloaded all the SQL Saturday XML files. I’ve been meaning to flatten those into a database, but that project keeps getting away from me. And now it’s become an archive task.

In any case, I’ve been looking to work with Jekyll and get a list of events. There is one at SQLSatHistory.com, but I’m going to try and do a bit more than a simple list. In any case, I have found a small issue: my files were named SQLSat1,xml, SQLSat2.xml, etc.

That’s not a big problem, but it results in my archive looking like:

The file names are strings, and in alpha sorting, 100 comes before 2. That’s not critical, but it’s not what I want, and I would like something that’s a bit better and easier to follow.

The easiest way to do this is to rename the files. I have some data in the files, and I have those being parsed, so if I can rename the files, I can get the events generated in an orderly fashion.

PowerShell has a Rename-Item cmdlet[1], which will work, but what new name? I need to parse out the filename and then come up with a new one. Likely there are better methods, but this worked quickly for me to rename some files.

The Process

My thought in doing this was first to extract out the number and then check the length. From there, I can assemble a new string. Instead, as I was starting, I thought of a better way. I decided to remove everything but the number.

There is a replace method for strings. As In, I can do this:

$EventNumber = $XmlFile.Name -replace 'SQLSat', ''

This will take away the string before the number, and results in file names going from:

to

I repeated that and removed the .xml as well, which gave me each event’s number. From here, I found a cool trick on Stack Overflow[2] to do this. The PadLeft[3] method is used

 % PadLeft 4 '0'

I use 4 as a padding factor. This results in giving me what I want, and when I concatenate this, I get the file names I want.

$NewFile = "SQLSat" + $EventNumber + ".xml"

From there, a simple call to Rename-Item with each file resulted in an orderly list of events.

2021-01-07 13_21_43-xml

The post Renaming Files by Padding Numbers with PowerShell[4] appeared first on SQLServerCentral[5].

References

  1. ^ Rename-Item cmdlet (docs.microsoft.com)
  2. ^ a cool trick on Stack Overflow (stackoverflow.com)
  3. ^ PadLeft (docs.microsoft.com)
  4. ^ Renaming Files by Padding Numbers with PowerShell (www.sqlservercentral.com)
  5. ^ SQLServerCentral (www.sqlservercentral.com)


Source: Programming News

January 18, 2021
Category : Marketing
Tags: Databases News | News | SQL | SQL server

Leave a Reply

Your email address will not be published. Required fields are marked *

Sitemap | Terms | Privacy | Cookies | Advertising

Senior Software Developer

Creator of @LzoMedia I am a backend software developer based in London who likes beautiful code and has an adherence to standards & love's open-source.