# encoding: ascii
# api: powershell
# title: get-ContentFromString
# description: Dynamically creates a return of whatever type of file / directory is given. Covers CSV’s txt, log, or other Get-Content related files.
# version: 0.1
# type: function
# author: internetrush
# license: CC0
# function: get-ContentFromString
# x-poshcode-id: 4833
# x-archived: 2014-01-29T05:09:27
# x-published: 2014-01-23T12:50:00
#
# Pretty basic, can be expanded easily for XML
#
function get-ContentFromString{
param(
[Parameter(Mandatory=$True,Position=0)]
[string]$inputstring,
[switch]$recurseDir = $false
)
$directory = test-path $inputstring -PathType Container
if($directory){
try{
if($recurseDir){
$returnItem = gci $inputString -ErrorAction 'stop' -Recurse
}else{
$returnItem = gci $inputString -ErrorAction 'stop'
}
}catch{
$returnItem = Read-Host "Enter valid base directory to your desired items: $inputstring was invalid"
}finally{
if([string]::IsNullOrEmpty($returnItem)){
if($recurseDir){
$returnItem = gci $inputString -ErrorAction 'stop' -Recurse
}else{
$returnItem = gci $inputString -ErrorAction 'stop'
}
}
if([string]::IsNullOrEmpty($returnItem)){read-host "Cannot find base Directory, press enter to exit" ; break}
}
}else{
if($inputString -like "*.csv"){
try{
$returnItem = Import-Csv $inputString -ErrorAction 'stop'
}catch{
$returnItem = Read-Host "Enter valid base directory to your CSV: $inputstring was invalid"
}finally{
if([string]::IsNullOrEmpty($returnItem)){
$returnItem = Import-Csv $inputString -ErrorAction 'stop'
}
if([string]::IsNullOrEmpty($returnItem)){read-host "Cannot find base Directory, press enter to exit" ; break}
}
}else{
try{
$returnItem = gc $inputString -ErrorAction 'stop'
}catch{
$returnItem = Read-Host "Enter valid location to the txt or logfile: $inputstring was invalid"
}finally{
if([string]::IsNullOrEmpty($returnItem)){
$returnItem = gc $inputString -ErrorAction 'stop'
}
if([string]::IsNullOrEmpty($returnItem)){read-host "Cannot find txt or logfile, press enter to exit" ; break}
}
}
}
return $returnItem
}