dev-notes/languages/powershell/scripting.html

5280 lines
No EOL
146 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="author" content="Marcello Lamonaca">
<link rel="canonical" href="http://m-lamonaca.github.io/dev-notes/languages/powershell/scripting.html">
<link rel="prev" href="../javascript/svelte/svelte.html">
<link rel="next" href="commands.html">
<link rel="icon" href="../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.34">
<title>Scripting - Dev Notes</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.35f28582.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<script src="https://unpkg.com/iframe-worker/shim"></script>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<meta property="og:type" content="website" >
<meta property="og:title" content="Scripting - Dev Notes" >
<meta property="og:description" content="None" >
<meta property="og:image" content="http://m-lamonaca.github.io/dev-notes/assets/images/social/languages/powershell/scripting.png" >
<meta property="og:image:type" content="image/png" >
<meta property="og:image:width" content="1200" >
<meta property="og:image:height" content="630" >
<meta property="og:url" content="http://m-lamonaca.github.io/dev-notes/languages/powershell/scripting.html" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="Scripting - Dev Notes" >
<meta name="twitter:description" content="None" >
<meta name="twitter:image" content="http://m-lamonaca.github.io/dev-notes/assets/images/social/languages/powershell/scripting.png" >
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="orange" data-md-color-accent="deep-orange">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#powershell-scripting" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../../index.html" title="Dev Notes" class="md-header__button md-logo" aria-label="Dev Notes" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Dev Notes
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Scripting
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="orange" data-md-color-accent="deep-orange" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="orange" data-md-color-accent="deep-orange" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
</label>
</form>
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/m-lamonaca/dev-notes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../index.html" class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item">
<a href="../../containers/docker.html" class="md-tabs__link">
Containers
</a>
</li>
<li class="md-tabs__item">
<a href="../../databases/redis.html" class="md-tabs__link">
Databases
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../html/html.html" class="md-tabs__link">
Languages
</a>
</li>
<li class="md-tabs__item">
<a href="../../misc/git.html" class="md-tabs__link">
Misc
</a>
</li>
<li class="md-tabs__item">
<a href="../../linux/filesystem/file-links.html" class="md-tabs__link">
Linux
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../../index.html" title="Dev Notes" class="md-nav__button md-logo" aria-label="Dev Notes" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6m80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3l89.3 89.4-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3"/></svg>
</a>
Dev Notes
</label>
<div class="md-nav__source">
<a href="https://github.com/m-lamonaca/dev-notes" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../index.html" class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Containers
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Containers
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../containers/docker.html" class="md-nav__link">
<span class="md-ellipsis">
Docker
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../containers/kubernetes.html" class="md-nav__link">
<span class="md-ellipsis">
Kubernetes
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Databases
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Databases
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../databases/redis.html" class="md-nav__link">
<span class="md-ellipsis">
Redis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../databases/sql.html" class="md-nav__link">
<span class="md-ellipsis">
SQL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../databases/mongo-db.html" class="md-nav__link">
<span class="md-ellipsis">
MongoDB
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
<span class="md-ellipsis">
Languages
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Languages
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../html/html.html" class="md-nav__link">
<span class="md-ellipsis">
HTML
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../markdown.html" class="md-nav__link">
<span class="md-ellipsis">
Markdown
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../css/css.html" class="md-nav__link">
<span class="md-ellipsis">
CSS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../c/c.html" class="md-nav__link">
<span class="md-ellipsis">
C
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../kotlin/kotlin.html" class="md-nav__link">
<span class="md-ellipsis">
Kotlin
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../swift/swift.html" class="md-nav__link">
<span class="md-ellipsis">
Swift
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7" >
<label class="md-nav__link" for="__nav_4_7" id="__nav_4_7_label" tabindex="">
<span class="md-ellipsis">
Assembly
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_7">
<span class="md-nav__icon md-icon"></span>
Assembly
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../assembly/intel.html" class="md-nav__link">
<span class="md-ellipsis">
Intel
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../assembly/riscv.html" class="md-nav__link">
<span class="md-ellipsis">
RISC-V
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8" >
<label class="md-nav__link" for="__nav_4_8" id="__nav_4_8_label" tabindex="">
<span class="md-ellipsis">
Python
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8">
<span class="md-nav__icon md-icon"></span>
Python
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../python/python.html" class="md-nav__link">
<span class="md-ellipsis">
Python
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_2" >
<label class="md-nav__link" for="__nav_4_8_2" id="__nav_4_8_2_label" tabindex="0">
<span class="md-ellipsis">
Modules
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_2">
<span class="md-nav__icon md-icon"></span>
Modules
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../python/modules/argparse.html" class="md-nav__link">
<span class="md-ellipsis">
argparse
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/collections.html" class="md-nav__link">
<span class="md-ellipsis">
collection
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/csv.html" class="md-nav__link">
<span class="md-ellipsis">
csv
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/ftplib.html" class="md-nav__link">
<span class="md-ellipsis">
ftplib
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/itertools.html" class="md-nav__link">
<span class="md-ellipsis">
itertools
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/json.html" class="md-nav__link">
<span class="md-ellipsis">
json
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/logging.html" class="md-nav__link">
<span class="md-ellipsis">
logging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/shutil.html" class="md-nav__link">
<span class="md-ellipsis">
shutil
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/smtplib.html" class="md-nav__link">
<span class="md-ellipsis">
smtplib
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/socket.html" class="md-nav__link">
<span class="md-ellipsis">
socket
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/sqlite.html" class="md-nav__link">
<span class="md-ellipsis">
sqlite
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/time-datetime.html" class="md-nav__link">
<span class="md-ellipsis">
time & datetime
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/modules/unittest.html" class="md-nav__link">
<span class="md-ellipsis">
unittest
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_3" >
<label class="md-nav__link" for="__nav_4_8_3" id="__nav_4_8_3_label" tabindex="0">
<span class="md-ellipsis">
Libraries
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_3">
<span class="md-nav__icon md-icon"></span>
Libraries
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../python/libs/tkinter.html" class="md-nav__link">
<span class="md-ellipsis">
TKinter
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/libs/numpy.html" class="md-nav__link">
<span class="md-ellipsis">
Numpy
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/libs/pandas.html" class="md-nav__link">
<span class="md-ellipsis">
Pandas
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/libs/seaborn.html" class="md-nav__link">
<span class="md-ellipsis">
Seaborn
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/libs/requests.html" class="md-nav__link">
<span class="md-ellipsis">
Requests
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../python/libs/beautiful-soup.html" class="md-nav__link">
<span class="md-ellipsis">
Beatiful Soup
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9" >
<label class="md-nav__link" for="__nav_4_9" id="__nav_4_9_label" tabindex="">
<span class="md-ellipsis">
.NET
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_9">
<span class="md-nav__icon md-icon"></span>
.NET
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_1" >
<label class="md-nav__link" for="__nav_4_9_1" id="__nav_4_9_1_label" tabindex="0">
<span class="md-ellipsis">
C#
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_9_1">
<span class="md-nav__icon md-icon"></span>
C#
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dotnet/csharp/csharp.html" class="md-nav__link">
<span class="md-ellipsis">
C#
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/csharp/linq.html" class="md-nav__link">
<span class="md-ellipsis">
Linq
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/csharp/collections.html" class="md-nav__link">
<span class="md-ellipsis">
Collections
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/csharp/reactive-extensions.html" class="md-nav__link">
<span class="md-ellipsis">
Reactive Extensions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/csharp/async-programming.html" class="md-nav__link">
<span class="md-ellipsis">
Async Programming
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/csharp/unit-tests.html" class="md-nav__link">
<span class="md-ellipsis">
Unit Tests
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_2" >
<label class="md-nav__link" for="__nav_4_9_2" id="__nav_4_9_2_label" tabindex="0">
<span class="md-ellipsis">
ASP.NET
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_9_2">
<span class="md-nav__icon md-icon"></span>
ASP.NET
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dotnet/asp.net/minimal-api.html" class="md-nav__link">
<span class="md-ellipsis">
Minimal API
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/filters.html" class="md-nav__link">
<span class="md-ellipsis">
FIlters
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/middleware.html" class="md-nav__link">
<span class="md-ellipsis">
Middleware
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/razor-syntax.html" class="md-nav__link">
<span class="md-ellipsis">
Razor Syntax
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/blazor.html" class="md-nav__link">
<span class="md-ellipsis">
Blazor
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/signalr.html" class="md-nav__link">
<span class="md-ellipsis">
SignalR
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/asp.net/web-forms.html" class="md-nav__link">
<span class="md-ellipsis">
Web Forms
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_9_3" >
<label class="md-nav__link" for="__nav_4_9_3" id="__nav_4_9_3_label" tabindex="0">
<span class="md-ellipsis">
Database
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_9_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_9_3">
<span class="md-nav__icon md-icon"></span>
Database
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../dotnet/database/ado.net.html" class="md-nav__link">
<span class="md-ellipsis">
ADO.NET
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../dotnet/database/entity-framework.html" class="md-nav__link">
<span class="md-ellipsis">
Entity Framework
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10" >
<label class="md-nav__link" for="__nav_4_10" id="__nav_4_10_label" tabindex="">
<span class="md-ellipsis">
Java
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_10_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_10">
<span class="md-nav__icon md-icon"></span>
Java
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../java/java.html" class="md-nav__link">
<span class="md-ellipsis">
Java
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../java/java-collection-framework.html" class="md-nav__link">
<span class="md-ellipsis">
Java Collection Framework
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../java/dao.html" class="md-nav__link">
<span class="md-ellipsis">
DAO
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10_4" >
<label class="md-nav__link" for="__nav_4_10_4" id="__nav_4_10_4_label" tabindex="0">
<span class="md-ellipsis">
Web
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_10_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_10_4">
<span class="md-nav__icon md-icon"></span>
Web
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../java/web/servlet.html" class="md-nav__link">
<span class="md-ellipsis">
Serverlet
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_10_4_2" >
<label class="md-nav__link" for="__nav_4_10_4_2" id="__nav_4_10_4_2_label" tabindex="0">
<span class="md-ellipsis">
Spring
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="4" aria-labelledby="__nav_4_10_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_10_4_2">
<span class="md-nav__icon md-icon"></span>
Spring
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../java/spring/pom.xml.html" class="md-nav__link">
<span class="md-ellipsis">
POM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../java/spring/spring-project.html" class="md-nav__link">
<span class="md-ellipsis">
Project Structure
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11" >
<label class="md-nav__link" for="__nav_4_11" id="__nav_4_11_label" tabindex="">
<span class="md-ellipsis">
PHP
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_11_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_11">
<span class="md-nav__icon md-icon"></span>
PHP
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../php/php.html" class="md-nav__link">
<span class="md-ellipsis">
PHP
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/database.html" class="md-nav__link">
<span class="md-ellipsis">
Database
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/web.html" class="md-nav__link">
<span class="md-ellipsis">
Web
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/dependency-injection.html" class="md-nav__link">
<span class="md-ellipsis">
Dependency Injection
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/unit-tests.html" class="md-nav__link">
<span class="md-ellipsis">
Unit Tests
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/composer.html" class="md-nav__link">
<span class="md-ellipsis">
Composer
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/psr-7.html" class="md-nav__link">
<span class="md-ellipsis">
PSR 7
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/plates-templating.html" class="md-nav__link">
<span class="md-ellipsis">
Plates
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_11_9" >
<label class="md-nav__link" for="__nav_4_11_9" id="__nav_4_11_9_label" tabindex="0">
<span class="md-ellipsis">
Simple MVC
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_11_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_11_9">
<span class="md-nav__icon md-icon"></span>
Simple MVC
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../php/simple-mvc/simple-mvc.html" class="md-nav__link">
<span class="md-ellipsis">
Simple MVC
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../php/simple-mvc/rest-api.html" class="md-nav__link">
<span class="md-ellipsis">
REST API
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_12" >
<label class="md-nav__link" for="__nav_4_12" id="__nav_4_12_label" tabindex="">
<span class="md-ellipsis">
Rust
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_12_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_12">
<span class="md-nav__icon md-icon"></span>
Rust
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../rust/rust.html" class="md-nav__link">
<span class="md-ellipsis">
Rust
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rust/macros.html" class="md-nav__link">
<span class="md-ellipsis">
Macros
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rust/cargo.html" class="md-nav__link">
<span class="md-ellipsis">
Cargo
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rust/concurrency.html" class="md-nav__link">
<span class="md-ellipsis">
Concurrency
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../rust/unit-tests.html" class="md-nav__link">
<span class="md-ellipsis">
Unit Tests
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_13" >
<label class="md-nav__link" for="__nav_4_13" id="__nav_4_13_label" tabindex="">
<span class="md-ellipsis">
Javascript
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_13_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_13">
<span class="md-nav__icon md-icon"></span>
Javascript
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../javascript/javascript.html" class="md-nav__link">
<span class="md-ellipsis">
Javascript
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/dom.html" class="md-nav__link">
<span class="md-ellipsis">
DOM
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/events-animation.html" class="md-nav__link">
<span class="md-ellipsis">
Events & Animation
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/ajax.html" class="md-nav__link">
<span class="md-ellipsis">
AJAX
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/jquery.html" class="md-nav__link">
<span class="md-ellipsis">
jQuery
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_13_6" >
<label class="md-nav__link" for="__nav_4_13_6" id="__nav_4_13_6_label" tabindex="0">
<span class="md-ellipsis">
React
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_13_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_13_6">
<span class="md-nav__icon md-icon"></span>
React
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../javascript/react/react.html" class="md-nav__link">
<span class="md-ellipsis">
React
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/react/react-router.html" class="md-nav__link">
<span class="md-ellipsis">
React Router
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/react/react-tests.html" class="md-nav__link">
<span class="md-ellipsis">
React Tests
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/react/redux.html" class="md-nav__link">
<span class="md-ellipsis">
Redux
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../javascript/react/redux-tests.html" class="md-nav__link">
<span class="md-ellipsis">
Redux Tests
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../javascript/svelte/svelte.html" class="md-nav__link">
<span class="md-ellipsis">
Svelte
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_14" checked>
<label class="md-nav__link" for="__nav_4_14" id="__nav_4_14_label" tabindex="">
<span class="md-ellipsis">
PowerShell
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_14_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_14">
<span class="md-nav__icon md-icon"></span>
PowerShell
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
Scripting
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="scripting.html" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
Scripting
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#screen-output" class="md-nav__link">
<span class="md-ellipsis">
Screen Output
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#user-input" class="md-nav__link">
<span class="md-ellipsis">
User Input
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#variables" class="md-nav__link">
<span class="md-ellipsis">
Variables
</span>
</a>
<nav class="md-nav" aria-label="Variables">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#built-in-variables" class="md-nav__link">
<span class="md-ellipsis">
Built-in Variables
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#lists-dictionaries" class="md-nav__link">
<span class="md-ellipsis">
Lists &amp; Dictionaries
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#flow-control" class="md-nav__link">
<span class="md-ellipsis">
Flow Control
</span>
</a>
<nav class="md-nav" aria-label="Flow Control">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#switch" class="md-nav__link">
<span class="md-ellipsis">
Switch
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#loops" class="md-nav__link">
<span class="md-ellipsis">
Loops
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#operators" class="md-nav__link">
<span class="md-ellipsis">
Operators
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#exception-handling" class="md-nav__link">
<span class="md-ellipsis">
Exception Handling
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#script-arguments" class="md-nav__link">
<span class="md-ellipsis">
Script Arguments
</span>
</a>
<nav class="md-nav" aria-label="Script Arguments">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#parsing-script-arguments" class="md-nav__link">
<span class="md-ellipsis">
Parsing Script Arguments
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#script-named-arguments" class="md-nav__link">
<span class="md-ellipsis">
Script Named Arguments
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#filters" class="md-nav__link">
<span class="md-ellipsis">
Filters
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#powershell-comment-based-help" class="md-nav__link">
<span class="md-ellipsis">
PowerShell Comment-based Help
</span>
</a>
<nav class="md-nav" aria-label="PowerShell Comment-based Help">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#synopsis" class="md-nav__link">
<span class="md-ellipsis">
.SYNOPSIS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#description" class="md-nav__link">
<span class="md-ellipsis">
.DESCRIPTION
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#parameter" class="md-nav__link">
<span class="md-ellipsis">
.PARAMETER
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#example" class="md-nav__link">
<span class="md-ellipsis">
.EXAMPLE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs" class="md-nav__link">
<span class="md-ellipsis">
.INPUTS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#outputs" class="md-nav__link">
<span class="md-ellipsis">
.OUTPUTS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#notes" class="md-nav__link">
<span class="md-ellipsis">
.NOTES
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#link" class="md-nav__link">
<span class="md-ellipsis">
.LINK
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#component" class="md-nav__link">
<span class="md-ellipsis">
.COMPONENT
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#role" class="md-nav__link">
<span class="md-ellipsis">
.ROLE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#functionality" class="md-nav__link">
<span class="md-ellipsis">
.FUNCTIONALITY
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#forwardhelptargetname" class="md-nav__link">
<span class="md-ellipsis">
.FORWARDHELPTARGETNAME
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#forwardhelpcategory" class="md-nav__link">
<span class="md-ellipsis">
.FORWARDHELPCATEGORY
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#remotehelprunspace" class="md-nav__link">
<span class="md-ellipsis">
.REMOTEHELPRUNSPACE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#externalhelp" class="md-nav__link">
<span class="md-ellipsis">
.EXTERNALHELP
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#project-oriented-programming" class="md-nav__link">
<span class="md-ellipsis">
Project Oriented Programming
</span>
</a>
<nav class="md-nav" aria-label="Project Oriented Programming">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="commands.html" class="md-nav__link">
<span class="md-ellipsis">
Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_15" >
<label class="md-nav__link" for="__nav_4_15" id="__nav_4_15_label" tabindex="">
<span class="md-ellipsis">
Bash
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_15_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_15">
<span class="md-nav__icon md-icon"></span>
Bash
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../bash/scripting.html" class="md-nav__link">
<span class="md-ellipsis">
Scripting
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../bash/commands.html" class="md-nav__link">
<span class="md-ellipsis">
Commands
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Misc
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Misc
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../misc/git.html" class="md-nav__link">
<span class="md-ellipsis">
Git
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../misc/graph-ql.html" class="md-nav__link">
<span class="md-ellipsis">
GraphQL
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../misc/regular-expressions.html" class="md-nav__link">
<span class="md-ellipsis">
RegEx
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../misc/ssh.html" class="md-nav__link">
<span class="md-ellipsis">
SSH
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../misc/web-components.html" class="md-nav__link">
<span class="md-ellipsis">
WebComponents
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
Linux
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
Linux
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_1" >
<label class="md-nav__link" for="__nav_6_1" id="__nav_6_1_label" tabindex="0">
<span class="md-ellipsis">
Filesystem
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_1">
<span class="md-nav__icon md-icon"></span>
Filesystem
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../linux/filesystem/file-links.html" class="md-nav__link">
<span class="md-ellipsis">
File Links
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../linux/filesystem/procfs.html" class="md-nav__link">
<span class="md-ellipsis">
/proc
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../linux/filesystem/sysfs.html" class="md-nav__link">
<span class="md-ellipsis">
/sys
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_2" >
<label class="md-nav__link" for="__nav_6_2" id="__nav_6_2_label" tabindex="0">
<span class="md-ellipsis">
System Init
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_6_2">
<span class="md-nav__icon md-icon"></span>
System Init
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../linux/init/systemd.html" class="md-nav__link">
<span class="md-ellipsis">
Systemd
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../linux/init/open-rc.html" class="md-nav__link">
<span class="md-ellipsis">
OpenRC
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#screen-output" class="md-nav__link">
<span class="md-ellipsis">
Screen Output
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#user-input" class="md-nav__link">
<span class="md-ellipsis">
User Input
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#variables" class="md-nav__link">
<span class="md-ellipsis">
Variables
</span>
</a>
<nav class="md-nav" aria-label="Variables">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#built-in-variables" class="md-nav__link">
<span class="md-ellipsis">
Built-in Variables
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#lists-dictionaries" class="md-nav__link">
<span class="md-ellipsis">
Lists &amp; Dictionaries
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#flow-control" class="md-nav__link">
<span class="md-ellipsis">
Flow Control
</span>
</a>
<nav class="md-nav" aria-label="Flow Control">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#switch" class="md-nav__link">
<span class="md-ellipsis">
Switch
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#loops" class="md-nav__link">
<span class="md-ellipsis">
Loops
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#operators" class="md-nav__link">
<span class="md-ellipsis">
Operators
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#exception-handling" class="md-nav__link">
<span class="md-ellipsis">
Exception Handling
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#functions" class="md-nav__link">
<span class="md-ellipsis">
Functions
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#script-arguments" class="md-nav__link">
<span class="md-ellipsis">
Script Arguments
</span>
</a>
<nav class="md-nav" aria-label="Script Arguments">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#parsing-script-arguments" class="md-nav__link">
<span class="md-ellipsis">
Parsing Script Arguments
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#script-named-arguments" class="md-nav__link">
<span class="md-ellipsis">
Script Named Arguments
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#filters" class="md-nav__link">
<span class="md-ellipsis">
Filters
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#powershell-comment-based-help" class="md-nav__link">
<span class="md-ellipsis">
PowerShell Comment-based Help
</span>
</a>
<nav class="md-nav" aria-label="PowerShell Comment-based Help">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#synopsis" class="md-nav__link">
<span class="md-ellipsis">
.SYNOPSIS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#description" class="md-nav__link">
<span class="md-ellipsis">
.DESCRIPTION
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#parameter" class="md-nav__link">
<span class="md-ellipsis">
.PARAMETER
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#example" class="md-nav__link">
<span class="md-ellipsis">
.EXAMPLE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#inputs" class="md-nav__link">
<span class="md-ellipsis">
.INPUTS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#outputs" class="md-nav__link">
<span class="md-ellipsis">
.OUTPUTS
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#notes" class="md-nav__link">
<span class="md-ellipsis">
.NOTES
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#link" class="md-nav__link">
<span class="md-ellipsis">
.LINK
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#component" class="md-nav__link">
<span class="md-ellipsis">
.COMPONENT
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#role" class="md-nav__link">
<span class="md-ellipsis">
.ROLE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#functionality" class="md-nav__link">
<span class="md-ellipsis">
.FUNCTIONALITY
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#forwardhelptargetname" class="md-nav__link">
<span class="md-ellipsis">
.FORWARDHELPTARGETNAME
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#forwardhelpcategory" class="md-nav__link">
<span class="md-ellipsis">
.FORWARDHELPCATEGORY
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#remotehelprunspace" class="md-nav__link">
<span class="md-ellipsis">
.REMOTEHELPRUNSPACE
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#externalhelp" class="md-nav__link">
<span class="md-ellipsis">
.EXTERNALHELP
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#project-oriented-programming" class="md-nav__link">
<span class="md-ellipsis">
Project Oriented Programming
</span>
</a>
<nav class="md-nav" aria-label="Project Oriented Programming">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#classes" class="md-nav__link">
<span class="md-ellipsis">
Classes
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="powershell-scripting">PowerShell Scripting</h1>
<p>Cmdlets are formed by a verb-noun pair. Cmdlets are case-insensitive.</p>
<p><strong>It's all .NET</strong>
A PS string is in fact a .NET System.String
All .NET methods and properties are thus available</p>
<p>Note that .NET functions MUST be called with parentheses while PS functions CANNOT be called with parentheses.
If you do call a cmdlet/PS function with parentheses, it is the same as passing a single parameter list.</p>
<h2 id="screen-output">Screen Output</h2>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nb">Write-Host</span> <span class="s2">&quot;message&quot;</span>
</code></pre></div></td></tr></table></div>
<h2 id="user-input">User Input</h2>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span>
<span class="normal"><a href="#__codelineno-1-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="c"># Reading a value from input:</span>
<a id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="nv">$variable</span> <span class="p">=</span> <span class="nb">Read-Host</span> <span class="s2">&quot;prompt&quot;</span>
</code></pre></div></td></tr></table></div>
<h2 id="variables">Variables</h2>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-2-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-2-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-2-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-2-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-2-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-2-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-2-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-2-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-2-10">10</a></span>
<span class="normal"><a href="#__codelineno-2-11">11</a></span>
<span class="normal"><a href="#__codelineno-2-12">12</a></span>
<span class="normal"><a href="#__codelineno-2-13">13</a></span>
<span class="normal"><a href="#__codelineno-2-14">14</a></span>
<span class="normal"><a href="#__codelineno-2-15">15</a></span>
<span class="normal"><a href="#__codelineno-2-16">16</a></span>
<span class="normal"><a href="#__codelineno-2-17">17</a></span>
<span class="normal"><a href="#__codelineno-2-18">18</a></span>
<span class="normal"><a href="#__codelineno-2-19">19</a></span>
<span class="normal"><a href="#__codelineno-2-20">20</a></span>
<span class="normal"><a href="#__codelineno-2-21">21</a></span>
<span class="normal"><a href="#__codelineno-2-22">22</a></span>
<span class="normal"><a href="#__codelineno-2-23">23</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="c"># Declaration</span>
<a id="__codelineno-2-2" name="__codelineno-2-2"></a><span class="no">[type]</span><span class="nv">$var</span> <span class="p">=</span> <span class="n">value</span>
<a id="__codelineno-2-3" name="__codelineno-2-3"></a><span class="nv">$var</span> <span class="p">=</span> <span class="n">value</span> <span class="o">-as</span> <span class="no">[type]</span>
<a id="__codelineno-2-4" name="__codelineno-2-4"></a>
<a id="__codelineno-2-5" name="__codelineno-2-5"></a><span class="no">[int]</span><span class="nv">$a</span> <span class="p">=</span> <span class="n">5</span>
<a id="__codelineno-2-6" name="__codelineno-2-6"></a><span class="nv">$b</span> <span class="p">=</span> <span class="n">6</span> <span class="o">-as</span> <span class="no">[double]</span> <span class="c"># ?</span>
<a id="__codelineno-2-7" name="__codelineno-2-7"></a>
<a id="__codelineno-2-8" name="__codelineno-2-8"></a><span class="c"># Here-string (multiline string)</span>
<a id="__codelineno-2-9" name="__codelineno-2-9"></a><span class="sh">@&quot;</span>
<a id="__codelineno-2-10" name="__codelineno-2-10"></a><span class="sh">Here-string</span>
<a id="__codelineno-2-11" name="__codelineno-2-11"></a><span class="sh">$a + $b = ($a + $b)</span>
<a id="__codelineno-2-12" name="__codelineno-2-12"></a><span class="sh">&quot;@</span>
<a id="__codelineno-2-13" name="__codelineno-2-13"></a>
<a id="__codelineno-2-14" name="__codelineno-2-14"></a><span class="sh">@&#39;</span>
<a id="__codelineno-2-15" name="__codelineno-2-15"></a><span class="sh">Literal Here-string</span>
<a id="__codelineno-2-16" name="__codelineno-2-16"></a><span class="sh">&#39;@</span>
<a id="__codelineno-2-17" name="__codelineno-2-17"></a>
<a id="__codelineno-2-18" name="__codelineno-2-18"></a><span class="c"># Swapping</span>
<a id="__codelineno-2-19" name="__codelineno-2-19"></a><span class="nv">$a</span><span class="p">,</span> <span class="nv">$b</span> <span class="p">=</span> <span class="nv">$b</span><span class="p">,</span> <span class="nv">$a</span>
<a id="__codelineno-2-20" name="__codelineno-2-20"></a>
<a id="__codelineno-2-21" name="__codelineno-2-21"></a><span class="c"># Interpolation</span>
<a id="__codelineno-2-22" name="__codelineno-2-22"></a><span class="nb">Write-Host</span> <span class="s2">&quot;text $variable&quot;</span> <span class="c"># single quotes will not interpolate</span>
<a id="__codelineno-2-23" name="__codelineno-2-23"></a><span class="nb">Write-Host</span> <span class="p">(&lt;</span><span class="n">expression</span><span class="p">&gt;)</span>
</code></pre></div></td></tr></table></div>
<h3 id="built-in-variables">Built-in Variables</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-3-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-3-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-3-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-3-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-3-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-3-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-3-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-3-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-3-10">10</a></span>
<span class="normal"><a href="#__codelineno-3-11">11</a></span>
<span class="normal"><a href="#__codelineno-3-12">12</a></span>
<span class="normal"><a href="#__codelineno-3-13">13</a></span>
<span class="normal"><a href="#__codelineno-3-14">14</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1"></a><span class="nv">$True</span><span class="p">,</span> <span class="nv">$False</span> <span class="c"># boolean</span>
<a id="__codelineno-3-2" name="__codelineno-3-2"></a><span class="nv">$null</span> <span class="c"># empty value</span>
<a id="__codelineno-3-3" name="__codelineno-3-3"></a><span class="p">$?</span> <span class="c"># last program return value</span>
<a id="__codelineno-3-4" name="__codelineno-3-4"></a><span class="nv">$LastExitCode</span> <span class="c"># Exit code of last run Windows-based program</span>
<a id="__codelineno-3-5" name="__codelineno-3-5"></a><span class="p">$$</span> <span class="c"># The last token in the last line received by the session</span>
<a id="__codelineno-3-6" name="__codelineno-3-6"></a><span class="p">$^</span> <span class="c"># The first token</span>
<a id="__codelineno-3-7" name="__codelineno-3-7"></a><span class="nv">$PID</span> <span class="c"># Script&#39;s PID</span>
<a id="__codelineno-3-8" name="__codelineno-3-8"></a><span class="nv">$PSScriptRoot</span> <span class="c"># Full path of current script directory</span>
<a id="__codelineno-3-9" name="__codelineno-3-9"></a><span class="nv">$MyInvocation</span><span class="p">.</span><span class="n">MyCommand</span><span class="p">.</span><span class="n">Path</span> <span class="c"># Full path of current script</span>
<a id="__codelineno-3-10" name="__codelineno-3-10"></a><span class="nv">$Pwd</span> <span class="c"># Full path of current directory</span>
<a id="__codelineno-3-11" name="__codelineno-3-11"></a><span class="nv">$PSBoundParameters</span> <span class="c"># Bound arguments in a function, script or code block</span>
<a id="__codelineno-3-12" name="__codelineno-3-12"></a><span class="nv">$Args</span> <span class="c"># Unbound arguments</span>
<a id="__codelineno-3-13" name="__codelineno-3-13"></a>
<a id="__codelineno-3-14" name="__codelineno-3-14"></a><span class="p">.</span> <span class="p">.\</span><span class="n">otherScriptName</span><span class="p">.</span><span class="n">ps1</span> <span class="c"># Inline another file (dot operator)</span>
</code></pre></div></td></tr></table></div>
<h3 id="lists-dictionaries">Lists &amp; Dictionaries</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-4-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-4-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-4-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-4-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-4-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-4-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-4-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-4-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-4-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-4-10">10</a></span>
<span class="normal"><a href="#__codelineno-4-11">11</a></span>
<span class="normal"><a href="#__codelineno-4-12">12</a></span>
<span class="normal"><a href="#__codelineno-4-13">13</a></span>
<span class="normal"><a href="#__codelineno-4-14">14</a></span>
<span class="normal"><a href="#__codelineno-4-15">15</a></span>
<span class="normal"><a href="#__codelineno-4-16">16</a></span>
<span class="normal"><a href="#__codelineno-4-17">17</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1"></a><span class="nv">$List</span> <span class="p">=</span> <span class="p">@(</span><span class="n">5</span><span class="p">,</span> <span class="s2">&quot;ice&quot;</span><span class="p">,</span> <span class="n">3</span><span class="p">.</span><span class="n">14</span><span class="p">,</span> <span class="nv">$True</span><span class="p">)</span> <span class="c"># Explicit syntax</span>
<a id="__codelineno-4-2" name="__codelineno-4-2"></a><span class="nv">$List</span> <span class="p">=</span> <span class="n">2</span><span class="p">,</span> <span class="s2">&quot;ice&quot;</span><span class="p">,</span> <span class="n">3</span><span class="p">.</span><span class="n">14</span><span class="p">,</span> <span class="nv">$True</span> <span class="c"># Implicit syntax</span>
<a id="__codelineno-4-3" name="__codelineno-4-3"></a><span class="nv">$List</span> <span class="p">=</span> <span class="p">(</span><span class="n">1</span><span class="p">..</span><span class="n">10</span><span class="p">)</span> <span class="c"># Inclusive range</span>
<a id="__codelineno-4-4" name="__codelineno-4-4"></a><span class="nv">$List</span> <span class="p">=</span> <span class="p">@()</span> <span class="c"># Empty List</span>
<a id="__codelineno-4-5" name="__codelineno-4-5"></a>
<a id="__codelineno-4-6" name="__codelineno-4-6"></a><span class="nv">$String</span> <span class="p">=</span> <span class="nv">$List</span> <span class="n">-join</span> <span class="s1">&#39;separator&#39;</span>
<a id="__codelineno-4-7" name="__codelineno-4-7"></a><span class="nv">$List</span> <span class="p">=</span> <span class="nv">$String</span> <span class="n">-split</span> <span class="s1">&#39;separator&#39;</span>
<a id="__codelineno-4-8" name="__codelineno-4-8"></a>
<a id="__codelineno-4-9" name="__codelineno-4-9"></a><span class="c"># List comprehensions</span>
<a id="__codelineno-4-10" name="__codelineno-4-10"></a><span class="nv">$List</span> <span class="p">=</span> <span class="n">sequence</span> <span class="p">|</span> <span class="nb">Where-Object</span> <span class="p">{</span><span class="nv">$_</span> <span class="n">command</span><span class="p">}</span> <span class="c"># $_ is current object</span>
<a id="__codelineno-4-11" name="__codelineno-4-11"></a><span class="nv">$Dict</span> <span class="p">=</span> <span class="p">@{</span><span class="s2">&quot;a&quot;</span> <span class="p">=</span> <span class="s2">&quot;apple&quot;</span><span class="p">;</span> <span class="s2">&quot;b&quot;</span> <span class="p">=</span> <span class="s2">&quot;ball&quot;</span><span class="p">}</span> <span class="c"># Dict definition</span>
<a id="__codelineno-4-12" name="__codelineno-4-12"></a><span class="nv">$Dict</span><span class="p">[</span><span class="s2">&quot;a&quot;</span><span class="p">]</span> <span class="p">=</span> <span class="s2">&quot;acorn&quot;</span> <span class="c"># Item update</span>
<a id="__codelineno-4-13" name="__codelineno-4-13"></a>
<a id="__codelineno-4-14" name="__codelineno-4-14"></a><span class="c"># Loop through keys</span>
<a id="__codelineno-4-15" name="__codelineno-4-15"></a><span class="k">foreach</span> <span class="p">(</span><span class="nv">$k</span> <span class="k">in</span> <span class="nv">$Dict</span><span class="p">.</span><span class="n">keys</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-4-16" name="__codelineno-4-16"></a> <span class="c"># Code here</span>
<a id="__codelineno-4-17" name="__codelineno-4-17"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h2 id="flow-control">Flow Control</h2>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-5-1">1</a></span>
<span class="normal"><a href="#__codelineno-5-2">2</a></span>
<span class="normal"><a href="#__codelineno-5-3">3</a></span>
<span class="normal"><a href="#__codelineno-5-4">4</a></span>
<span class="normal"><a href="#__codelineno-5-5">5</a></span>
<span class="normal"><a href="#__codelineno-5-6">6</a></span>
<span class="normal"><a href="#__codelineno-5-7">7</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1"></a><span class="k">if</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-5-2" name="__codelineno-5-2"></a> <span class="c"># Code here</span>
<a id="__codelineno-5-3" name="__codelineno-5-3"></a><span class="p">}</span> <span class="k">elseif</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-5-4" name="__codelineno-5-4"></a> <span class="c"># Code here</span>
<a id="__codelineno-5-5" name="__codelineno-5-5"></a><span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
<a id="__codelineno-5-6" name="__codelineno-5-6"></a> <span class="c"># Code here</span>
<a id="__codelineno-5-7" name="__codelineno-5-7"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h3 id="switch">Switch</h3>
<p><code>Switch</code> has the following parameters:</p>
<ul>
<li><strong>Wildcard</strong>: Indicates that the condition is a wildcard string. If the match clause is not a string, the parameter is ignored. The comparison is case-insensitive.</li>
<li><strong>Exact</strong>: Indicates that the match clause, if it is a string, must match exactly. If the match clause is not a string, this parameter is ignored. The comparison is case-insensitive.</li>
<li><strong>CaseSensitive</strong>: Performs a case-sensitive match. If the match clause is not a string, this parameter is ignored.</li>
<li><strong>File</strong>: Takes input from a file rather than a value statement. If multiple File parameters are included, only the last one is used. Each line of the file is read and evaluated by the Switch statement. The comparison is case-insensitive.</li>
<li><strong>Regex</strong>: Performs regular expression matching of the value to the condition. If the match clause is not a string, this parameter is ignored. The comparison is case-insensitive. The <code>$matches</code> automatic variable is available for use within the matching statement block.</li>
</ul>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-6-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-6-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-6-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-6-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-6-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-6-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-6-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-6-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-6-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-6-10">10</a></span>
<span class="normal"><a href="#__codelineno-6-11">11</a></span>
<span class="normal"><a href="#__codelineno-6-12">12</a></span>
<span class="normal"><a href="#__codelineno-6-13">13</a></span>
<span class="normal"><a href="#__codelineno-6-14">14</a></span>
<span class="normal"><a href="#__codelineno-6-15">15</a></span>
<span class="normal"><a href="#__codelineno-6-16">16</a></span>
<span class="normal"><a href="#__codelineno-6-17">17</a></span>
<span class="normal"><a href="#__codelineno-6-18">18</a></span>
<span class="normal"><a href="#__codelineno-6-19">19</a></span>
<span class="normal"><a href="#__codelineno-6-20">20</a></span>
<span class="normal"><a href="#__codelineno-6-21">21</a></span>
<span class="normal"><a href="#__codelineno-6-22">22</a></span>
<span class="normal"><a href="#__codelineno-6-23">23</a></span>
<span class="normal"><a href="#__codelineno-6-24">24</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1"></a><span class="k">switch</span><span class="p">(</span><span class="n">variable</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-6-2" name="__codelineno-6-2"></a> <span class="n">20</span> <span class="p">{</span> <span class="s2">&quot;Exactly 20&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-3" name="__codelineno-6-3"></a> <span class="p">{</span> <span class="nv">$_</span> <span class="o">-eq</span> <span class="n">42</span> <span class="p">}</span> <span class="p">{</span> <span class="s2">&quot;The answer equals 42&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-4" name="__codelineno-6-4"></a> <span class="p">{</span> <span class="nv">$_</span> <span class="o">-like</span> <span class="s1">&#39;s*&#39;</span> <span class="p">}</span> <span class="p">{</span> <span class="s2">&quot;Case insensitive&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-5" name="__codelineno-6-5"></a> <span class="p">{</span> <span class="nv">$_</span> <span class="o">-clike</span> <span class="s1">&#39;s*&#39;</span><span class="p">}</span> <span class="p">{</span> <span class="s2">&quot;clike, ceq, cne for case sensitive&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-6" name="__codelineno-6-6"></a> <span class="p">{</span> <span class="nv">$_</span> <span class="o">-notmatch</span> <span class="s1">&#39;^.*$&#39;</span><span class="p">}</span> <span class="p">{</span> <span class="s2">&quot;Regex matching. cnotmatch, cnotlike, ...&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-7" name="__codelineno-6-7"></a> <span class="p">{</span> <span class="nv">$list</span> <span class="o">-contains</span> <span class="s1">&#39;x&#39;</span><span class="p">}</span> <span class="p">{</span> <span class="s2">&quot;if a list contains an item&quot;</span><span class="p">;</span> <span class="k">break</span> <span class="p">}</span>
<a id="__codelineno-6-8" name="__codelineno-6-8"></a> <span class="k">default</span> <span class="p">{</span> <span class="s2">&quot;Others&quot;</span> <span class="p">}</span>
<a id="__codelineno-6-9" name="__codelineno-6-9"></a><span class="p">}</span>
<a id="__codelineno-6-10" name="__codelineno-6-10"></a>
<a id="__codelineno-6-11" name="__codelineno-6-11"></a><span class="c"># syntax</span>
<a id="__codelineno-6-12" name="__codelineno-6-12"></a><span class="k">switch</span> <span class="p">[</span><span class="o">-regex</span><span class="p">|</span><span class="o">-wildcard</span><span class="p">|</span><span class="o">-exact</span><span class="p">][</span><span class="o">-casesensitive</span><span class="p">]</span> <span class="p">(&lt;</span><span class="n">value</span><span class="p">&gt;)</span>
<a id="__codelineno-6-13" name="__codelineno-6-13"></a><span class="p">{</span>
<a id="__codelineno-6-14" name="__codelineno-6-14"></a> <span class="s2">&quot;string&quot;</span><span class="p">|</span><span class="n">number</span><span class="p">|</span><span class="n">variable</span><span class="p">|{</span> <span class="n">expression</span> <span class="p">}</span> <span class="p">{</span> <span class="n">statement_list</span> <span class="p">}</span>
<a id="__codelineno-6-15" name="__codelineno-6-15"></a> <span class="k">default</span> <span class="p">{</span> <span class="n">statement_list</span> <span class="p">}</span>
<a id="__codelineno-6-16" name="__codelineno-6-16"></a><span class="p">}</span>
<a id="__codelineno-6-17" name="__codelineno-6-17"></a>
<a id="__codelineno-6-18" name="__codelineno-6-18"></a><span class="c"># or</span>
<a id="__codelineno-6-19" name="__codelineno-6-19"></a>
<a id="__codelineno-6-20" name="__codelineno-6-20"></a><span class="k">switch</span> <span class="p">[</span><span class="o">-regex</span><span class="p">|</span><span class="o">-wildcard</span><span class="p">|</span><span class="o">-exact</span><span class="p">][</span><span class="o">-casesensitive</span><span class="p">]</span> <span class="o">-file</span> <span class="n">filename</span>
<a id="__codelineno-6-21" name="__codelineno-6-21"></a><span class="p">{</span>
<a id="__codelineno-6-22" name="__codelineno-6-22"></a> <span class="s2">&quot;string&quot;</span><span class="p">|</span><span class="n">number</span><span class="p">|</span><span class="n">variable</span><span class="p">|{</span> <span class="n">expression</span> <span class="p">}</span> <span class="p">{</span> <span class="n">statement_list</span> <span class="p">}</span>
<a id="__codelineno-6-23" name="__codelineno-6-23"></a> <span class="k">default</span> <span class="p">{</span> <span class="n">statement_list</span> <span class="p">}</span>
<a id="__codelineno-6-24" name="__codelineno-6-24"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h3 id="loops">Loops</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-7-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-7-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-7-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-7-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-7-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-7-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-7-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-7-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-7-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-7-10">10</a></span>
<span class="normal"><a href="#__codelineno-7-11">11</a></span>
<span class="normal"><a href="#__codelineno-7-12">12</a></span>
<span class="normal"><a href="#__codelineno-7-13">13</a></span>
<span class="normal"><a href="#__codelineno-7-14">14</a></span>
<span class="normal"><a href="#__codelineno-7-15">15</a></span>
<span class="normal"><a href="#__codelineno-7-16">16</a></span>
<span class="normal"><a href="#__codelineno-7-17">17</a></span>
<span class="normal"><a href="#__codelineno-7-18">18</a></span>
<span class="normal"><a href="#__codelineno-7-19">19</a></span>
<span class="normal"><a href="#__codelineno-7-20">20</a></span>
<span class="normal"><a href="#__codelineno-7-21">21</a></span>
<span class="normal"><a href="#__codelineno-7-22">22</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1"></a><span class="c"># The classic for</span>
<a id="__codelineno-7-2" name="__codelineno-7-2"></a><span class="k">for</span><span class="p">(</span><span class="n">setup</span><span class="p">;</span> <span class="n">condition</span><span class="p">;</span> <span class="n">iterator</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-7-3" name="__codelineno-7-3"></a> <span class="c"># Code here</span>
<a id="__codelineno-7-4" name="__codelineno-7-4"></a><span class="p">}</span>
<a id="__codelineno-7-5" name="__codelineno-7-5"></a>
<a id="__codelineno-7-6" name="__codelineno-7-6"></a><span class="n">range</span> <span class="p">|</span> <span class="p">%</span> <span class="p">{</span> <span class="n">command</span> <span class="p">}</span>
<a id="__codelineno-7-7" name="__codelineno-7-7"></a>
<a id="__codelineno-7-8" name="__codelineno-7-8"></a><span class="k">foreach</span> <span class="p">(</span><span class="n">item</span> <span class="k">in</span> <span class="n">iterable</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-7-9" name="__codelineno-7-9"></a> <span class="c"># Code Here</span>
<a id="__codelineno-7-10" name="__codelineno-7-10"></a><span class="p">}</span>
<a id="__codelineno-7-11" name="__codelineno-7-11"></a>
<a id="__codelineno-7-12" name="__codelineno-7-12"></a><span class="k">while</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span> <span class="p">{</span>
<a id="__codelineno-7-13" name="__codelineno-7-13"></a> <span class="c"># Code here</span>
<a id="__codelineno-7-14" name="__codelineno-7-14"></a><span class="p">}</span>
<a id="__codelineno-7-15" name="__codelineno-7-15"></a>
<a id="__codelineno-7-16" name="__codelineno-7-16"></a><span class="k">do</span> <span class="p">{</span>
<a id="__codelineno-7-17" name="__codelineno-7-17"></a> <span class="c"># Code here</span>
<a id="__codelineno-7-18" name="__codelineno-7-18"></a><span class="p">}</span> <span class="k">until</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span>
<a id="__codelineno-7-19" name="__codelineno-7-19"></a>
<a id="__codelineno-7-20" name="__codelineno-7-20"></a><span class="k">do</span> <span class="p">{</span>
<a id="__codelineno-7-21" name="__codelineno-7-21"></a> <span class="c"># Code here</span>
<a id="__codelineno-7-22" name="__codelineno-7-22"></a><span class="p">}</span> <span class="k">while</span> <span class="p">(</span><span class="n">condition</span><span class="p">)</span>
</code></pre></div></td></tr></table></div>
<h3 id="operators">Operators</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-8-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-8-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-8-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-8-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-8-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-8-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-8-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-8-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-8-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-8-10">10</a></span>
<span class="normal"><a href="#__codelineno-8-11">11</a></span>
<span class="normal"><a href="#__codelineno-8-12">12</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1"></a><span class="c"># Conditionals</span>
<a id="__codelineno-8-2" name="__codelineno-8-2"></a><span class="nv">$a</span> <span class="o">-eq</span> <span class="nv">$b</span> <span class="c"># is equal to</span>
<a id="__codelineno-8-3" name="__codelineno-8-3"></a><span class="nv">$a</span> <span class="o">-ne</span> <span class="nv">$b</span> <span class="c"># in not equal to</span>
<a id="__codelineno-8-4" name="__codelineno-8-4"></a><span class="nv">$a</span> <span class="o">-gt</span> <span class="nv">$b</span> <span class="c"># greater than</span>
<a id="__codelineno-8-5" name="__codelineno-8-5"></a><span class="nv">$a</span> <span class="o">-ge</span> <span class="nv">$b</span> <span class="c"># greater than or equal to</span>
<a id="__codelineno-8-6" name="__codelineno-8-6"></a><span class="nv">$a</span> <span class="o">-lt</span> <span class="nv">$b</span> <span class="c"># less than</span>
<a id="__codelineno-8-7" name="__codelineno-8-7"></a><span class="nv">$a</span> <span class="o">-le</span> <span class="nv">$b</span> <span class="c"># less than or equal to</span>
<a id="__codelineno-8-8" name="__codelineno-8-8"></a>
<a id="__codelineno-8-9" name="__codelineno-8-9"></a><span class="c"># Logical</span>
<a id="__codelineno-8-10" name="__codelineno-8-10"></a><span class="nv">$true</span> <span class="o">-And</span> <span class="nv">$False</span>
<a id="__codelineno-8-11" name="__codelineno-8-11"></a><span class="nv">$True</span> <span class="o">-Or</span> <span class="nv">$False</span>
<a id="__codelineno-8-12" name="__codelineno-8-12"></a><span class="o">-Not</span> <span class="nv">$True</span>
</code></pre></div></td></tr></table></div>
<h3 id="exception-handling">Exception Handling</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-9-1">1</a></span>
<span class="normal"><a href="#__codelineno-9-2">2</a></span>
<span class="normal"><a href="#__codelineno-9-3">3</a></span>
<span class="normal"><a href="#__codelineno-9-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1"></a><span class="k">try</span> <span class="p">{}</span> <span class="k">catch</span> <span class="p">{}</span> <span class="k">finally</span> <span class="p">{}</span>
<a id="__codelineno-9-2" name="__codelineno-9-2"></a><span class="k">try</span> <span class="p">{}</span> <span class="k">catch</span> <span class="no">[System.NullReferenceException]</span> <span class="p">{</span>
<a id="__codelineno-9-3" name="__codelineno-9-3"></a> <span class="nb">echo </span><span class="nv">$_</span><span class="p">.</span><span class="n">Exception</span> <span class="p">|</span> <span class="nb">Format-List</span> <span class="n">-Force</span>
<a id="__codelineno-9-4" name="__codelineno-9-4"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h2 id="functions"><a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions?view=powershell-7">Functions</a></h2>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-10-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-10-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-10-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-10-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-10-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-10-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-10-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-10-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-10-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-10-10">10</a></span>
<span class="normal"><a href="#__codelineno-10-11">11</a></span>
<span class="normal"><a href="#__codelineno-10-12">12</a></span>
<span class="normal"><a href="#__codelineno-10-13">13</a></span>
<span class="normal"><a href="#__codelineno-10-14">14</a></span>
<span class="normal"><a href="#__codelineno-10-15">15</a></span>
<span class="normal"><a href="#__codelineno-10-16">16</a></span>
<span class="normal"><a href="#__codelineno-10-17">17</a></span>
<span class="normal"><a href="#__codelineno-10-18">18</a></span>
<span class="normal"><a href="#__codelineno-10-19">19</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1"></a><span class="k">function</span> <span class="n">func</span><span class="p">()</span> <span class="p">{}</span>
<a id="__codelineno-10-2" name="__codelineno-10-2"></a>
<a id="__codelineno-10-3" name="__codelineno-10-3"></a><span class="c"># function with named parameters</span>
<a id="__codelineno-10-4" name="__codelineno-10-4"></a><span class="k">function</span> <span class="n">func</span> <span class="p">(</span><span class="no">[type]</span><span class="nv">$param</span><span class="p">=</span><span class="n">default_value</span><span class="p">,</span> <span class="p">...)</span> <span class="p">{</span> <span class="p">}</span>
<a id="__codelineno-10-5" name="__codelineno-10-5"></a><span class="k">function</span> <span class="n">func</span> <span class="p">{</span>
<a id="__codelineno-10-6" name="__codelineno-10-6"></a> <span class="k">param</span><span class="p">(</span><span class="no">[type]</span><span class="nv">$param</span><span class="p">=</span><span class="n">default_value</span><span class="p">,</span> <span class="p">...)</span>
<a id="__codelineno-10-7" name="__codelineno-10-7"></a>
<a id="__codelineno-10-8" name="__codelineno-10-8"></a> <span class="c"># statements</span>
<a id="__codelineno-10-9" name="__codelineno-10-9"></a><span class="p">}</span>
<a id="__codelineno-10-10" name="__codelineno-10-10"></a>
<a id="__codelineno-10-11" name="__codelineno-10-11"></a><span class="c"># function call</span>
<a id="__codelineno-10-12" name="__codelineno-10-12"></a><span class="n">func</span> <span class="n">argument</span>
<a id="__codelineno-10-13" name="__codelineno-10-13"></a><span class="n">func</span> <span class="n">-param</span> <span class="n">value</span>
<a id="__codelineno-10-14" name="__codelineno-10-14"></a>
<a id="__codelineno-10-15" name="__codelineno-10-15"></a><span class="c"># switch parameters</span>
<a id="__codelineno-10-16" name="__codelineno-10-16"></a><span class="k">function</span> <span class="n">func</span> <span class="p">(</span><span class="no">[switch]</span><span class="nv">$param</span><span class="p">,</span> <span class="p">...)</span> <span class="p">{</span> <span class="p">}</span>
<a id="__codelineno-10-17" name="__codelineno-10-17"></a>
<a id="__codelineno-10-18" name="__codelineno-10-18"></a><span class="n">func</span> <span class="c"># param is $false</span>
<a id="__codelineno-10-19" name="__codelineno-10-19"></a><span class="n">func</span> <span class="n">-param</span> <span class="c"># param is $true</span>
</code></pre></div></td></tr></table></div>
<p>If the function defines a <code>Begin</code>, <code>Process</code> or <code>End</code> block, all the code <strong>must reside inside</strong> those blocks. No code will be recognized outside the blocks if any of the blocks are defined.</p>
<p>If the function has a <code>Process</code> keyword, each object in <code>$input</code> is removed from <code>$input</code> and assigned to <code>$_</code>.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-11-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-11-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-11-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-11-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-11-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-11-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-11-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-11-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-11-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-11-10">10</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1"></a><span class="k">function</span> <span class="p">[&lt;</span><span class="n">scope</span><span class="p">:&gt;]&lt;</span><span class="n">name</span><span class="p">&gt;</span> <span class="p">[(</span><span class="no">[type]</span><span class="nv">$parameter1</span><span class="p">[,</span><span class="no">[type]</span><span class="nv">$parameter2</span><span class="p">])]</span>
<a id="__codelineno-11-2" name="__codelineno-11-2"></a><span class="p">{</span>
<a id="__codelineno-11-3" name="__codelineno-11-3"></a> <span class="k">param</span><span class="p">(</span><span class="no">[type]</span><span class="nv">$parameter1</span> <span class="p">[,</span><span class="no">[type]</span><span class="nv">$parameter2</span><span class="p">])</span> <span class="c"># other way to specify named parameters</span>
<a id="__codelineno-11-4" name="__codelineno-11-4"></a> <span class="k">dynamicparam</span> <span class="p">{&lt;</span><span class="n">statement</span> <span class="n">list</span><span class="p">&gt;}</span>
<a id="__codelineno-11-5" name="__codelineno-11-5"></a>
<a id="__codelineno-11-6" name="__codelineno-11-6"></a> <span class="c"># processing pipelines</span>
<a id="__codelineno-11-7" name="__codelineno-11-7"></a> <span class="k">begin</span> <span class="p">{&lt;</span><span class="n">statement</span> <span class="n">list</span><span class="p">&gt;}</span> <span class="c"># runned once, at start of pipeline</span>
<a id="__codelineno-11-8" name="__codelineno-11-8"></a> <span class="k">process</span> <span class="p">{&lt;</span><span class="n">statement</span> <span class="n">list</span><span class="p">&gt;}</span> <span class="c"># runned for each item in the pipeline</span>
<a id="__codelineno-11-9" name="__codelineno-11-9"></a> <span class="k">end</span> <span class="p">{&lt;</span><span class="n">statement</span> <span class="n">list</span><span class="p">&gt;}</span> <span class="c"># runned once, at end of pipeline</span>
<a id="__codelineno-11-10" name="__codelineno-11-10"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<p>Optionally, it's possible to provide a brief help string that describes the default value of the parameter, by adding the <code>PSDefaultValue</code> attribute to the description of the parameter, and specifying the <code>Help</code> property of <code>PSDefaultValue</code>.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-12-1">1</a></span>
<span class="normal"><a href="#__codelineno-12-2">2</a></span>
<span class="normal"><a href="#__codelineno-12-3">3</a></span>
<span class="normal"><a href="#__codelineno-12-4">4</a></span>
<span class="normal"><a href="#__codelineno-12-5">5</a></span>
<span class="normal"><a href="#__codelineno-12-6">6</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1"></a><span class="k">function</span> <span class="n">Func</span> <span class="p">{</span>
<a id="__codelineno-12-2" name="__codelineno-12-2"></a> <span class="k">param</span> <span class="p">(</span>
<a id="__codelineno-12-3" name="__codelineno-12-3"></a> <span class="p">[</span><span class="n">PSDefaultValue</span><span class="p">(</span><span class="n">Help</span> <span class="p">=</span> <span class="n">defValue</span><span class="p">)]</span>
<a id="__codelineno-12-4" name="__codelineno-12-4"></a> <span class="nv">$Arg</span> <span class="p">=</span> <span class="n">100</span>
<a id="__codelineno-12-5" name="__codelineno-12-5"></a> <span class="p">)</span>
<a id="__codelineno-12-6" name="__codelineno-12-6"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h2 id="script-arguments">Script Arguments</h2>
<h3 id="parsing-script-arguments">Parsing Script Arguments</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-13-1">1</a></span>
<span class="normal"><a href="#__codelineno-13-2">2</a></span>
<span class="normal"><a href="#__codelineno-13-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1"></a><span class="nv">$args</span> <span class="c"># array of passed arguments</span>
<a id="__codelineno-13-2" name="__codelineno-13-2"></a><span class="nv">$args</span><span class="p">[</span><span class="nv">$index</span><span class="p">]</span> <span class="c"># access to the arguments</span>
<a id="__codelineno-13-3" name="__codelineno-13-3"></a><span class="nv">$args</span><span class="p">.</span><span class="n">count</span> <span class="c"># number of arguments</span>
</code></pre></div></td></tr></table></div>
<h3 id="script-named-arguments">Script Named Arguments</h3>
<p>In <code>scripts.ps1</code>:</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-14-1">1</a></span>
<span class="normal"><a href="#__codelineno-14-2">2</a></span>
<span class="normal"><a href="#__codelineno-14-3">3</a></span>
<span class="normal"><a href="#__codelineno-14-4">4</a></span>
<span class="normal"><a href="#__codelineno-14-5">5</a></span>
<span class="normal"><a href="#__codelineno-14-6">6</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1"></a><span class="k">param</span><span class="p">(</span><span class="nv">$param1</span><span class="p">,</span> <span class="nv">$param2</span><span class="p">,</span> <span class="p">...)</span> <span class="c"># basic usage</span>
<a id="__codelineno-14-2" name="__codelineno-14-2"></a><span class="k">param</span><span class="p">(</span><span class="nv">$param1</span><span class="p">,</span> <span class="nv">$param2</span><span class="p">=</span><span class="n">defvalue</span><span class="p">,</span> <span class="p">...)</span> <span class="c"># with default values</span>
<a id="__codelineno-14-3" name="__codelineno-14-3"></a><span class="k">param</span><span class="p">(</span><span class="no">[Type]</span> <span class="nv">$param1</span><span class="p">,</span> <span class="nv">$param2</span><span class="p">,</span> <span class="p">...)</span> <span class="c"># specify a type</span>
<a id="__codelineno-14-4" name="__codelineno-14-4"></a><span class="k">param</span><span class="p">([</span><span class="k">Parameter</span><span class="p">(</span><span class="k">Mandatory</span><span class="p">)]</span><span class="nv">$param1</span><span class="p">,</span> <span class="nv">$param2</span><span class="p">,</span> <span class="p">...)</span> <span class="c"># setting a parameter as necessary</span>
<a id="__codelineno-14-5" name="__codelineno-14-5"></a>
<a id="__codelineno-14-6" name="__codelineno-14-6"></a><span class="k">param</span><span class="p">(</span><span class="no">[switch]</span><span class="nv">$flag</span><span class="p">=</span><span class="nv">$false</span><span class="p">,</span> <span class="p">...)</span> <span class="c"># custom flags</span>
</code></pre></div></td></tr></table></div>
<p>In PowerShell:</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-15-1">1</a></span>
<span class="normal"><a href="#__codelineno-15-2">2</a></span>
<span class="normal"><a href="#__codelineno-15-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1"></a><span class="p">.\</span><span class="n">script</span><span class="p">.</span><span class="n">ps1</span> <span class="n">arg1</span> <span class="n">arg2</span> <span class="c"># order of arguments will determine which data goes in which parameter</span>
<a id="__codelineno-15-2" name="__codelineno-15-2"></a>
<a id="__codelineno-15-3" name="__codelineno-15-3"></a><span class="p">.\</span><span class="n">script</span><span class="p">.</span><span class="n">ps1</span> <span class="n">-param2</span> <span class="n">arg2</span> <span class="n">-param1</span> <span class="n">arg1</span> <span class="c"># custom order</span>
</code></pre></div></td></tr></table></div>
<h3 id="filters">Filters</h3>
<p>A filter is a type of function that runs on each object in the pipeline. A filter resembles a function with all its statements in a <code>Process</code> block.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-16-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1"></a><span class="k">filter</span> <span class="p">[&lt;</span><span class="n">scope</span><span class="p">:&gt;]&lt;</span><span class="n">name</span><span class="p">&gt;</span> <span class="p">{&lt;</span><span class="n">statement</span> <span class="n">list</span><span class="p">&gt;}</span>
</code></pre></div></td></tr></table></div>
<h2 id="powershell-comment-based-help">PowerShell Comment-based Help</h2>
<p>The syntax for comment-based help is as follows:</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-17-1">1</a></span>
<span class="normal"><a href="#__codelineno-17-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1"></a><span class="c"># .&lt;help keyword&gt;</span>
<a id="__codelineno-17-2" name="__codelineno-17-2"></a><span class="c"># &lt;help content&gt;</span>
</code></pre></div></td></tr></table></div>
<p>or</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-18-1">1</a></span>
<span class="normal"><a href="#__codelineno-18-2">2</a></span>
<span class="normal"><a href="#__codelineno-18-3">3</a></span>
<span class="normal"><a href="#__codelineno-18-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1"></a><span class="cm">&lt;#</span>
<a id="__codelineno-18-2" name="__codelineno-18-2"></a><span class="cm">.&lt;help keyword&gt;</span>
<a id="__codelineno-18-3" name="__codelineno-18-3"></a><span class="cm">&lt;help content&gt;</span>
<a id="__codelineno-18-4" name="__codelineno-18-4"></a><span class="cm">#&gt;</span>
</code></pre></div></td></tr></table></div>
<p>Comment-based help is written as a series of comments. You can type a comment symbol <code>#</code> before each line of comments, or you can use the <code>&lt;#</code> and <code>#&gt;</code> symbols to create a comment block. All the lines within the comment block are interpreted as comments.</p>
<p>All of the lines in a comment-based help topic must be contiguous. If a comment-based help topic follows a comment that is not part of the help topic, there must be at least one blank line between the last non-help comment line and the beginning of the comment-based help.</p>
<p>Keywords define each section of comment-based help. Each comment-based help keyword is preceded by a dot <code>.</code>. The keywords can appear in any order. The keyword names are not case-sensitive.</p>
<h3 id="synopsis">.SYNOPSIS</h3>
<p>A brief description of the function or script. This keyword can be used only once in each topic.</p>
<h3 id="description">.DESCRIPTION</h3>
<p>A detailed description of the function or script. This keyword can be used only once in each topic.</p>
<h3 id="parameter">.PARAMETER</h3>
<p>The description of a parameter. Add a <code>.PARAMETER</code> keyword for each parameter in the function or script syntax.</p>
<p>Type the parameter name on the same line as the <code>.PARAMETER</code> keyword. Type the parameter description on the lines following the <code>.PARAMETER</code> keyword. Windows PowerShell interprets all text between the <code>.PARAMETER</code> line and the next keyword or the end of the comment block as part of the parameter description. The description can include paragraph breaks.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-19-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1"></a><span class="p">.</span><span class="k">PARAMETER</span> <span class="p">&lt;</span><span class="k">Parameter</span><span class="n">-Name</span><span class="p">&gt;</span>
</code></pre></div></td></tr></table></div>
<p>The Parameter keywords can appear in any order in the comment block, but the function or script syntax determines the order in which the parameters (and their descriptions) appear in help topic. To change the order, change the syntax.</p>
<p>You can also specify a parameter description by placing a comment in the function or script syntax immediately before the parameter variable name. For this to work, you must also have a comment block with at least one keyword.</p>
<p>If you use both a syntax comment and a <code>.PARAMETER</code> keyword, the description associated with the <code>.PARAMETER</code> keyword is used, and the syntax comment is ignored.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-20-1"> 1</a></span>
<span class="normal"><a href="#__codelineno-20-2"> 2</a></span>
<span class="normal"><a href="#__codelineno-20-3"> 3</a></span>
<span class="normal"><a href="#__codelineno-20-4"> 4</a></span>
<span class="normal"><a href="#__codelineno-20-5"> 5</a></span>
<span class="normal"><a href="#__codelineno-20-6"> 6</a></span>
<span class="normal"><a href="#__codelineno-20-7"> 7</a></span>
<span class="normal"><a href="#__codelineno-20-8"> 8</a></span>
<span class="normal"><a href="#__codelineno-20-9"> 9</a></span>
<span class="normal"><a href="#__codelineno-20-10">10</a></span>
<span class="normal"><a href="#__codelineno-20-11">11</a></span>
<span class="normal"><a href="#__codelineno-20-12">12</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1"></a><span class="cm">&lt;#</span>
<a id="__codelineno-20-2" name="__codelineno-20-2"></a><span class="sd">.SYNOPSIS</span>
<a id="__codelineno-20-3" name="__codelineno-20-3"></a><span class="cm"> Short description here</span>
<a id="__codelineno-20-4" name="__codelineno-20-4"></a><span class="cm">#&gt;</span>
<a id="__codelineno-20-5" name="__codelineno-20-5"></a><span class="k">function</span> <span class="n">Verb-Noun</span> <span class="p">{</span>
<a id="__codelineno-20-6" name="__codelineno-20-6"></a> <span class="p">[</span><span class="k">CmdletBinding</span><span class="p">()]</span>
<a id="__codelineno-20-7" name="__codelineno-20-7"></a> <span class="k">param</span> <span class="p">(</span>
<a id="__codelineno-20-8" name="__codelineno-20-8"></a> <span class="c"># This is the same as .Parameter</span>
<a id="__codelineno-20-9" name="__codelineno-20-9"></a> <span class="no">[string]</span><span class="nv">$Computername</span>
<a id="__codelineno-20-10" name="__codelineno-20-10"></a> <span class="p">)</span>
<a id="__codelineno-20-11" name="__codelineno-20-11"></a> <span class="c"># Verb the Noun on the computer</span>
<a id="__codelineno-20-12" name="__codelineno-20-12"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<h3 id="example">.EXAMPLE</h3>
<p>A sample command that uses the function or script, optionally followed by sample output and a description. Repeat this keyword for each example.</p>
<h3 id="inputs">.INPUTS</h3>
<p>The .NET types of objects that can be piped to the function or script. You can also include a description of the input objects.</p>
<h3 id="outputs">.OUTPUTS</h3>
<p>The .NET type of the objects that the cmdlet returns. You can also include a description of the returned objects.</p>
<h3 id="notes">.NOTES</h3>
<p>Additional information about the function or script.</p>
<h3 id="link">.LINK</h3>
<p>The name of a related topic. The value appears on the line below the <code>.LINK</code> keyword and must be preceded by a comment symbol <code>#</code> or included in the comment block.</p>
<p>Repeat the <code>.LINK</code> keyword for each related topic.</p>
<p>This content appears in the Related Links section of the help topic.</p>
<p>The <code>.Link</code> keyword content can also include a Uniform Resource Identifier (URI) to an online version of the same help topic. The online version opens when you use the <strong>Online</strong> parameter of <code>Get-Help</code>. The URI must begin with "http" or "https".</p>
<h3 id="component">.COMPONENT</h3>
<p>The name of the technology or feature that the function or script uses, or to which it is related. The <strong>Component</strong> parameter of <code>Get-Help</code> uses this value to filter the search results returned by <code>Get-Help</code>.</p>
<h3 id="role">.ROLE</h3>
<p>The name of the user role for the help topic. The <strong>Role</strong> parameter of <code>Get-Help</code> uses this value to filter the search results returned by <code>Get-Help</code>.</p>
<h3 id="functionality">.FUNCTIONALITY</h3>
<p>The keywords that describe the intended use of the function. The <strong>Functionality</strong> parameter of <code>Get-Help</code> uses this value to filter the search results returned by <code>Get-Help</code>.</p>
<h3 id="forwardhelptargetname">.FORWARDHELPTARGETNAME</h3>
<p>Redirects to the help topic for the specified command. You can redirect users to any help topic, including help topics for a function, script, cmdlet, or provider.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-21-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1"></a><span class="c"># </span><span class="sd">.FORWARDHELPTARGETNAME</span><span class="c"> &lt;Command-Name&gt;</span>
</code></pre></div></td></tr></table></div>
<h3 id="forwardhelpcategory">.FORWARDHELPCATEGORY</h3>
<p>Specifies the help category of the item in <code>.ForwardHelpTargetName</code>. Valid values are <code>Alias</code>, <code>Cmdlet</code>, <code>HelpFile</code>, <code>Function</code>, <code>Provider</code>, <code>General</code>, <code>FAQ</code>, <code>Glossary</code>, <code>ScriptCommand</code>, <code>ExternalScript</code>, <code>Filter</code>, or <code>All</code>. Use this keyword to avoid conflicts when there are commands with the same name.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-22-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1"></a><span class="c"># </span><span class="sd">.FORWARDHELPCATEGORY</span><span class="c"> &lt;Category&gt;</span>
</code></pre></div></td></tr></table></div>
<h3 id="remotehelprunspace">.REMOTEHELPRUNSPACE</h3>
<p>Specifies a session that contains the help topic. Enter a variable that contains a <strong>PSSession</strong> object. This keyword is used by the <a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/export-pssession?view=powershell-7">Export-PSSession</a>
cmdlet to find the help topics for the exported commands.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-23-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1"></a><span class="c"># </span><span class="sd">.REMOTEHELPRUNSPACE</span><span class="c"> &lt;PSSession-variable&gt;</span>
</code></pre></div></td></tr></table></div>
<h3 id="externalhelp">.EXTERNALHELP</h3>
<p>Specifies an XML-based help file for the script or function.</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-24-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1"></a><span class="c"># </span><span class="sd">.EXTERNALHELP</span><span class="c"> &lt;XML Help File&gt;</span>
</code></pre></div></td></tr></table></div>
<p>The <code>.ExternalHelp</code> keyword is required when a function or script is documented in XML files. Without this keyword, <code>Get-Help</code> cannot find the XML-based help file for the function or script.</p>
<p>The <code>.ExternalHelp</code> keyword takes precedence over other comment-based help keywords. If <code>.ExternalHelp</code> is present, <code>Get-Help</code> does not display comment-based help, even if it cannot find a help topic that matches the value of the <code>.ExternalHelp</code> keyword.</p>
<p>If the function is exported by a module, set the value of the <code>.ExternalHelp</code> keyword to a filename without a path. <code>Get-Help</code> looks for the specified file name in a language-specific subdirectory of the module directory. There are no requirements for the name of the XML-based help file for a function, but a best practice is to use the following format:</p>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-25-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1"></a><span class="p">&lt;</span><span class="n">ScriptModule</span><span class="p">.</span><span class="n">psm1</span><span class="p">&gt;</span><span class="n">-help</span><span class="p">.</span><span class="n">xml</span>
</code></pre></div></td></tr></table></div>
<p>If the function is not included in a module, include a path to the XML-based help file. If the value includes a path and the path contains UI-culture-specific subdirectories, <code>Get-Help</code> searches the subdirectories
recursively for an XML file with the name of the script or function in accordance with the language fallback standards established for Windows, just as it does in a module directory.</p>
<p>For more information about the cmdlet help XML-based help file format, see <a href="https://go.microsoft.com/fwlink/?LinkID=123415">How to Write Cmdlet Help</a> in the MSDN library.</p>
<hr />
<h2 id="project-oriented-programming">Project Oriented Programming</h2>
<h3 id="classes">Classes</h3>
<div class="highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">PowerShell</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-26-1">1</a></span>
<span class="normal"><a href="#__codelineno-26-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1"></a><span class="no">[class]</span><span class="p">::</span><span class="n">func</span><span class="p">()</span> <span class="c"># use function from a static class</span>
<a id="__codelineno-26-2" name="__codelineno-26-2"></a><span class="no">[class]</span><span class="p">::</span><span class="n">attribute</span> <span class="c"># access to static class attribute</span>
</code></pre></div></td></tr></table></div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
Back to top
</button>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href="../javascript/svelte/svelte.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Svelte">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
Svelte
</div>
</div>
</a>
<a href="commands.html" class="md-footer__link md-footer__link--next" aria-label="Next: Commands">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Commands
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
MIT
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://hachyderm.io/@m_lamonaca" target="_blank" rel="noopener me" title="hachyderm.io" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
</a>
<a href="https://github.com/m-lamonaca" target="_blank" rel="noopener" title="github.com" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.instant", "navigation.indexes", "navigation.tracking", "navigation.pruning", "navigation.sections", "navigation.top", "navigation.tabs", "navigation.tabs.sticky", "navigation.footer", "toc.follow", "content.code.copy"], "search": "../../assets/javascripts/workers/search.07f07601.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.56dfad97.min.js"></script>
</body>
</html>