Windows PowerShell Cookbook

From Littledamien Wiki
Revision as of 19:14, 30 November 2015 by Video8 (talk | contribs) (→‎Environment variables)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Fetching remote content[edit]

Download content from the web[edit]

This will print out the markup from the index page (which could then be piped through additional commands):

> (new-object Net.WebClient).DownloadString("http://damienjay.com/")

Grep/Searching the content of files[edit]

Files in a single directory[edit]

> select-string .\*.* -pattern "\my_regexp\"

Recursive search[edit]

> gci path\to\search\root\ -rec | select-string -pattern "\my_regexp\"

Recursive search filtered by file type[edit]

> Get-ChildItem path\to\search\root\ -include *.txt -rec | select-string -pattern "\my_regexp\"
> # or, using aliases for the commands and not using "-include" ...
> gci path\to\search\root\ *.txt -r | sls -pattern "\my_regexp\"

List directory contents[edit]

Fun Things You Can Do With the Get-ChildItem Cmdlet (Microsoft TechNet)

> Get-ChildItem .\
> # or...
> gci .\
> # or...
> gci # for the current directory

Limit listing to file names[edit]

> gci path\to\directory | Select-Object Name
> # or...
> Get-ChildItem path\to\directory -name

Recursive listing[edit]

> gci -recursive
> # or...
> gci -rec

Environment variables[edit]

Displaying, creating, and modifying environment variables using Powershell CLI.[1]

See also Powershell Environment Configuration.

List all environment variables[edit]

> Get-ChildItem Env:
> # (or using gci alias...)
> gci env:

Display value of a single environment variable[edit]

$Env: followed by the variable name, e.g.:

> $Env:OS

Creating and modifying environment variables[edit]

Creating a process-level environment variable[edit]

> $env:TestVariable = "This is the test variable value."

Creating a permanent environment variable[edit]

> [Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")
N.B. It's necessary to create a new Powershell instance to refer to new environment variable values.

Deleting an environment variable[edit]

> Remove-Item Env:TestVariable
> # (or...)
> [Environment]::SetEnvironmentVariable("TestVariable", $null, "User")

Notes[edit]