Create a file name that contains current date, time, computer and user names in Powershell

Set-Content -path  "$env:temp\psr_$($env:computername)_$($env:username)_$(get-date -f "yyyy-MM-dd_HH-mm-ss").txt"  -Value "test content - could have come in from a pipeline instead of a parameter"
  • psr is an arbitrary string ie. could be anything (say i want to name a file made using Problem Steps Recorder)
  • Environment VARIABLES start with $env:
  • if there are more variables in a string they need to be surrounded in $() to be properly expanded
  • get-date with the –f custom format parameter returns string that does not contain characters forbidden in file names such as backslash (\), double colon (:) etc. Again it needs to be surrounded in $() to be properly expanded inside double quotes
  • to insert arbitrary characters into the custom date format string escape them with backslash ie. get-date -f “yyyy-MM-dd \a\t HH-mm-ss”

The outcome is a file in the user profile temp folder (%TEMP%)




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Tips, tricks and time-savers for the Windows and ConfigMgr administrator

To The Point

Anything about Technology and Business

Brian's Power Windows Blog

Microsoft in the Enterprise. Windows, Hyper-V, Exchange, SQL, and more!

PowerScripting Podcast

Shownotes and links for the PowerScripting Podcast, a podcast to help people learn Windows Powershell

Learn Powershell | Achieve More

What is this Powershell of which you speak?

%d bloggers like this: