Windows PowerShell Cookbook: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
Line 70: Line 70:
> # (or using gci alias...)
> # (or using gci alias...)
> gci env:
> gci env:
</syntaxhighlight>
=== Display value of a single environment variable ===
`$Env:` followed by the variable name, e.g.:
<syntaxhighlight lang="powershell">
> $Env:OS
</syntaxhighlight>
=== Creating and modifying environment variables ===
==== Creating a process-level environment variable ====
<syntaxhighlight lang="powershell">
> $env:TestVariable = "This is the test variable value."
</syntaxhighlight>
==== Creating a permanent environment variable ====
<syntaxhighlight lang="powershell">
> [Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")
</syntaxhighlight>
<div class="alert alert-warning">N.B. It's necessary to create a new Powershell instance to refer to new environment variable values.</div>
==== Deleting an environment variable ====
<syntaxhighlight lang="powershell">
> Remove-Item Env:TestVariable
> # (or...)
> [Environment]::SetEnvironmentVariable("TestVariable", $null, "User")
</syntaxhighlight>
</syntaxhighlight>


== Notes ==
== Notes ==
<references />
<references />

Revision as of 19:10, 30 November 2015

Fetching remote content

Download content from the web

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

Files in a single directory

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

Recursive search

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

Recursive search filtered by file type

> 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

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

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

Recursive listing

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

Environment variables

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

List all environment variables

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

Display value of a single environment variable

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

> $Env:OS

Creating and modifying environment variables

Creating a process-level environment variable

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

Creating a permanent environment variable

> [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

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

Notes