# encoding: ascii
# api: powershell
# title: Set-RandomFile
# description: Creates random file with extension which has assosiation (just for fun).
# version: 0.1
# type: function
# author: greg zakharov
# license: CC0
# function: Set-RandomFile
# x-poshcode-id: 4611
# x-archived: 2013-11-22T23:55:50
# x-published: 2013-11-16T15:44:00
#
#
#requires -version 2.0
function Set-RandomFile {
  param(
    [Parameter(Mandatory=$true,
               Position=0)]
    [String]$Path,
    
    [Parameter(Position=1)]
    [ValidateRange(0, 31)]
    [Int32]$Length = 7
  )
  
  begin {
    $ext = cmd /c assoc | % {if ($_ -match '=\w+' -and $_ -notmatch '.\d+=') {$_.Split('=')[0]}}
    $itm = -join ([GUID]::NewGuid().Guid -replace '-', '')[0..$Length]
  }
  process {
    $rnd = Get-Random -max ($ext.Length - 1)
  }
  end{
    if (Test-Path $Path) {
      [void](ni -p $Path -n $($itm + $ext[$rnd]) -t File -fo)
    }
  }
}
