Rename and Number Pictures with PowerShell

by Christian Fredh 9. November 2009 04:46

I had a problem. I had all these pictures taken from my recent journeys. When copying them over to my computer, they all had obscure file names like IMG_343.NEF. They were in raw format (.NEF) so the otherwise nice Windows feature of importing pictures didn’t recognize them, and the camera program didn’t have a fast way renaming them.

So, I thought: Let’s try to solve it with PowerShell, felt that I needed to play around with PowerShell anyway. Thought I share the script I used. It could definitely be used with other files as well, but I think pictures is the most common files to apply it to.

Please, be aware that I’m not a PowerShell expert, I’m not responsible of what happens to your files, and take backup of your files before using it.


Get-ChildItem | Sort-Object CreationTime | %{$suffixNumber=1} { %{$suffixString="{0:D3}" -f $suffixNumber} 
{ Rename-Item $_ -NewName "Las Vegas $suffixString.nef" ; $suffixNumber++ } }

The Get-ChildItem cmdlet gets all files in the folder you are in, and then we are piping the results to Sort-Object which sorts the files by creation date, and then for each file, we are renaming it and then increasing the number we are adding to the file name. I read the article Renaming Files by Jeffrey Snover to help me with this.

Change the $suffixNumber=1 if you want it to start from 0 or some other number. The $suffixString="{0:D3}" -f $suffixNumber is formatting the number to include leading zeros if nessesary. You can change the number 3 if you want more or less leading zeros. I read the article Windows PowerShell Tip of the Week - Formatting Numbers to help me with this. And, of course, change "Las Vegas " to what ever makes sense to your case.

The result was files with nice looking file names, Las Vegas 001.nef, Las Vegas 002.nef, Las Vegas 003.nef and so on.


Tags: , ,


SharePoint 2010 Development Environment Options

by Christian Fredh 4. November 2009 08:25

Great news for developers targeting SharePoint 2010 at the SharePoint Conference 2009. Many exiting features and tools, one of them being that SharePoint 2010 is installable on Windows 7 (and Vista), which means that SharePoint development is now supported on the client. This is a huge deal, since SharePoint development becomes more mainstream and easier to get started with.

Having SharePoint installed on the client is also good for demos. It is not supported for production environments.

Since SharePoint 2010 only support 64-bit operating system, this also applies if installing on Windows 7, you have to have the 64-bit versions. Since Windows Virtual PC doesn’t support 64-bit operating systems and Microsoft Virtual PC 2007 cannot be installed on Windows 7, using VPC is no longer an option – which is a good thing.

Basically, you are down to three different options when developing on the client, all with pros and cons.

On the Metal

SharePoint installed on your regular Windows 7 environment.


  • You can use all the hardware on your computer with no additional work, including networking. This means better performance and fewer problems with VPN connections.
  • You can use your other applications like Outlook and browsers at the same time with convenience.
  • You can start up SharePoint when developing and shut it down again when not using it, with simple PowerShell scripts. I will provide this scripts as a separate blog post.


  • If you are like me, switching between different projects a lot, it might take some thought to set them up on the same environment. Writing PowerShell scripts to set up environment and data for different projects could probably help with this.
  • If the SharePoint install gets messed up, it might take some time to solve, although I think it will be a lot easier in this version.

Bootable VHD

In Windows 7 you set up a bootable virtual hard drive with the SharePoint environment. When the computer is booting up, you choose to boot from the VHD where SharePoint is installed.


  • You can use all the hardware on your computer with no additional work, including networking. This means better performance and fewer problems with VPN connections.
  • You cannot use different VHDs for different projects with ease.
  • If you need a fresh install, just throw the VHD away and replace it with a backup with the fresh install.


  • You cannot use your regular applications when developing, and a restart is needed if you would like to switch to your regular environment. Of course, you can install as many applications as you which on the VHD, but it would need some work to keep it synchronized if that is preferable.


Using Windows Server 2008 R2 with Hyper-V on VHD, or if you use it as your base operating system, and then set up the SharePoint environment on one or more VHDs with Hyper-V.


  • Supports advanced scenarios with multiple servers and environments.
  • Your tests will be run in a realistic environment.


  • Takes time to set up, especially if your not used to Hyper-V.
  • As with the bootable VHD options you are not in your regular environment and don’t have your regular applications available. If you use Hyper-V to run your regular environment you would be able to switch faster, but that is probably not a common scenario.

Personally, I will try to use the On the Metal option, because I think it’s such a huge win to be able to work in your regular environment, and try to solve issues with different projects and SharePoint installment issues with PowerShell scripts, for setting up project environment and resetting the installation.

In later posts I will dig deeper on how to set up these environments.

Tags: , ,

SharePoint | SharePoint 2010

Powered by BlogEngine.NET
Theme by Mads Kristensen

About Christian Fredh

Christian Fredh

A twenty six year old solutions architect and developer living in Stockholm, Sweden. I work as a SharePoint consultant at Avega Group with .NET and SharePoint development.


The opinions expressed herein are my own personal opinions and do not represent my employer's view. Use the information on this site at your own risk.


Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.

© Copyright 2009, Christian Fredh.