$env:userprofile\Desktop $Home\Desktop ~\Desktop
cd $(Split-Path $PROFILE)
Example of finding a file somewhere in the filesystem and outputting the full path and filename.
Get-ChildItem -Recurse -Filter "csc.exe" | foreach {$_.Fullname}
Use a regex with -Match
operator for more advanced filtering.
gci -Recurse | where {$_.Name -Match "^csc.*"} | foreach {$_.Fullname}
$exclude = @("*.log", "*.tmp", "log*.txt") $files = ls -Recurse -Exclude $exclude Compress-Archive -Path $files -DestinationPath $home\desktop\webagent.zip
$base_path = "$home\downloads" $exclude_dir_files = @("$base_path\tmp\*", "$base_path\log\*", "*.tmp", "*.log" ) ls -Recurse -Exclude $exclude_dir
Example of using -Exclude
and additional regex filtering with -notmatch
operator. This is useful for excluding folders.
$exclude = @("*.log", "*.tmp", "log*.txt*") $files = ls -Recurse -Exclude $exclude $files = $files | where {$_.FullName -notmatch ".*\\logs"} Compress-Archive -Path $files -DestinationPath $home\desktop\webagent.zip
-File
or -Directory
option of Get-ChildItem
to list on those items.$exclude = @("*.log", "*.tmp", "log*.txt*") $files = ls -File -Recurse -Exclude $exclude Compress-Archive -Path $files -DestinationPath $home\desktop\webagent.zip
Example
Get-ChildItem -Recurse *.config | Select-String "foo" -List | Select Path
New-Item -force $env:temp\foo\foo.txt
Example
Compress-Archive -Path .\* -DestinationPath $env:userprofile\desktop\webapp1.zip
Example
$files = ls -Path .\* -Exclude @("*.tmp", "*.log") Compress-Archive -Path $files -DestinationPath $env:userprofile\desktop\webapp1.zip
$files = ls -Recurse | Where-Object {$_.FullName -notlike "*log*"} Compress-Archive -Path $file -DestinationPath $env:userprofile\desktop\webapp1.zip
List contents of archive
$archive = [System.IO.Compression.ZipFile]::OpenRead("$env:userprofile\downloads\archive.zip") $archive.Entries | Select-Object -Property FullName
Unzip zip archives contained in another zip archive.
Expand-Archive -DestinationPath .\zips '.\all_reports.zip' ls .\zips\ | % {Expand-Archive -DestinationPath $env:temp $_.FullName}
$suffix = 1 while ((Test-Path "$env:temp\mg-$suffix") -ne $false) { $suffix += 1 } mkdir "$env:temp\mg-$suffix"
$names = @("alpha", "beta", "gamma") $name = 0 while ($name -lt $names.Count) { if ((Test-Path "$env:temp\$names[$name]") -eq $false) { break } $name += 1 } if ($name -eq $names.Count) { $name = 0 } mkdir "$env:temp\$($names[$name])"