Tool.Yun
Χρήσιμα εργαλεία για προγραμματιστές
CSV σε JSON από αρχεία CSV σε JSON
JSON Flattener/Unflattener
JSON Linter
JSON για να αντιταχθεί
JSON για χρήση
JSON ελαχιστοποίηση
JSON σε .env
JSON σε C#
JSON σε CSV
JSON σε MessagePack
JSON σε TOML
JSON σε TS
JSON σε XML
JSON σε δεδομένα
JSON σε οντότητα Java
Json Escaper/Unescaper
Json σε PHP-Array
Json σε Python
Json σε SQL DDL
Json σε Σχήμα
ObjGen σε JSON
PHP-Array σε JSON
tools.json-patch.name
Αναλυτής μεγέθους Json
Διαφορά JSON
Δοκιμαστής Jq/JSONPath
Επεξεργαστής JSON
Ερώτημα Json
Κύριος ταξινόμηση JSON
Κώδικας Json σε PHP
Μετατροπέας JS σε JSON
Μετατροπέας JSON σε JS
Μετατροπέας JSON σε YAML
Μετατροπέας συμβολοσειρών Json
Ομορφοποίηση και μορφοποίηση JSON
Πακέτο μηνυμάτων σε JSON
Συγχώνευση JSON
HTML σε PDF
Έλεγχος υπογραφών PDF
Αποκρυπτογράφηση και ξεκλείδωμα PDF
Γραμμικοποίηση PDF/FastWeb
Εξαγωγέας κειμένου PDF
Εξαγωγέας σελίδων PDF
Κρυπτογράφηση PDF
Συμπιεστής PDF
Συνδετήρας PDF
ObjGen σε HTML
XML Linter
XML σε JSON
Δοκιμαστής XSLT
Ελεγκτής XPath
Μορφοποιητής XML
YAML Flattener/Unflattener
YAML σε TOML
Μετατροπέας YAML σε JSON
Ομορφοποίηση και μορφοποίηση YAML
Συγχώνευση YAML
Εργαλείο δημιουργίας εκφράσεων Cron
CSS/JS Prettify & Minify
Json προς Protobuf
Json σε Typescript
SQL Minifier
Stacktrace πιο όμορφο
Άνοιγμα γεννήτριας μεταδεδομένων γραφημάτων
Αποκρυπτογράφος Javascript
Αποσυμπιεστής/Αποσυσκευαστής Javascript
Γεννήτρια Favicon
Γεννήτρια GitIgnore
Γεννήτρια αλληλογραφίας
Γεννήτρια μυστικών Django
Γεννήτρια παραμέτρων SQL
Γεννήτρια πινάκων βάσης δεδομένων
Γεννήτρια σεναρίων δοκιμής φόρτωσης K6
Γεννήτρια χαρακτηριστικών Gitat
Δημιουργός δημιουργίας βάσεων δεδομένων
Διαφυγέας χορδών
Διαχωριστής αρχείων
Δοκιμές API
Δοκιμαστής Picomatch
Δοκιμαστής UI Swagger
Δοκιμαστής διαφυγής ANSI
Εισαγωγή από Json σε SQL
Επεξεργαστής εντολών Cli
Επισήμανση κώδικα/σεναρίων
Εργαλείο δημιουργίας συμβολοσειρών σύνδεσης βάσης δεδομένων
Μετατροπέας Προσφορών
Μετατροπέας αρχείων HEX
Μετατροπέας μπούκλας
Ομορφοποίηση και μορφοποίηση SQL
Παραποιητής Δεδομένων
Προγραμματιστής Javascript
Χρονοδιακόπτης Pomodoro
Γεννήτρια NanoIDs
Γεννήτρια UUID
Γεννήτρια Ταχυδρομικού Κώδικα
Γεννήτρια αριθμητικών ονομάτων
Γεννήτρια διακριτικών
Γεννήτρια κωδικών OTP
Γεννήτρια κωδικών πρόσβασης
Γεννήτρια κωδικών πρόσβασης BIP39
Γεννήτρια κωδικών πρόσβασης Diceware
Γεννήτρια τυχαίων αριθμών
Μετατροπέας UUID
tools.epc-qrcode-generator.name
Αναγνώστης γραμμωτού κώδικα
Αποκωδικοποιητής κωδικών QR
Γεννήτρια γραμμωτού κώδικα
Γεννήτρια κωδικών QR
Γεννήτρια κωδικών QR WiFi
Γεννήτρια πληροφοριών επικοινωνίας QR
Επικυρωτής GTIN
IPv4-6/IPRange/CIDR σε IPRange/CIDR/IPMask
tools.restic-command-generator.name
tools.url-redirection-checker.name
Έλεγχος DNSBL
Έλεγχος Whois
Ακέραιοι αριθμοί σε IPv4/IPv6
Αναζήτηση διεύθυνσης MAC
Αναλυτής ισχύος κωδικού πρόσβασης
Αποκωδικοποιητής ARPA
Αποκωδικοποιητής X-VR-SpamCause
Απολυμαντικό HAS
Αριθμοί θυρών
Αριθμομηχανή Chmod
Αριθμομηχανή σκληρού δίσκου
Βασική γεννήτρια εξουσιοδότησης
Γεννήτρια Apache LogRotate
Γεννήτρια Crontab
Γεννήτρια DNS BIMI
Γεννήτρια DNS DKIM
Γεννήτρια DNS DMARC
Γεννήτρια DNS PTR
Γεννήτρια FStab
Γεννήτρια HTAccess
Γεννήτρια Htpasswd/htaccess
Γεννήτρια IPv6 ULA
Γεννήτρια Iptables
Γεννήτρια Option43
Γεννήτρια Rsync
Γεννήτρια SPF DNS
Γεννήτρια WPA PSK
Γεννήτρια διευθύνσεων MAC
Γεννήτρια εντολών Curl
Γεννήτρια εντολών UFW
Γεννήτρια εντολών τερματισμού λειτουργίας
Γεννήτρια ρυθμίσεων Wireguard
Γεννήτρια τυχαίων θυρών
Γεωγραφική τοποθεσία IP
Γραμμικοποιητής εντολών κελύφους
Δοκιμή Websocket
Δοκιμαστής θύρας TCP/UDP
Δοκιμαστής μικροφώνου
Εξουσιοδότηση SIP
Επεκτατήρας εύρους IPv4
Ερωτήματα DNS
Ερωτήματα DNS/RDAP του Cloudflare
Η διεύθυνση IP μου
Ισχύς κωδικού πρόσβασης Zxcvbn
Λήψη πολλαπλών συνδέσμων
Λίστα υποδικτύων IPv4
Μετατροπέας Punycode
Μετατροπέας διευθύνσεων IPv4
Μετατροπέας διευθύνσεων IPv6
Μετατροπέας διευθύνσεων MAC
Μορφοποιητής Nginx
Μορφοποιητής εντολών κελύφους
Πινγκ
Υπολογιστής RAID
Υπολογιστής ZPOOL RAID
Υπολογιστής αξιοπιστίας RAID
Υπολογιστής εξαίρεσης υποδικτύων IP
Υπολογιστής εύρους IPv4/6 CIDR σε IP
Υπολογιστής εύρους IPv4/6 έως CIDR(s)
Υπολογιστής οπτικού υποδικτύου
Υπολογιστής ρυθμού μεταφοράς δεδομένων
Υπολογιστής υποδικτύου IPv4
Υπολογιστής υποδικτύου IPv6
Φύλλο οδηγιών χρήσης ZPool
γεννήτρια γραμμής εντολών firewalld
Έλεγχος πιστωτικών καρτών
Αναζήτηση ISO 639
Αναζήτηση Unicode
Αναζήτηση κωδικών χωρών ISO 3166
Αναλυτής και μορφοποιητής τηλεφώνου
Εξηγήστε την εντολή Shell
Επικυρωτής Luhn
Επικυρωτής Αριθμών ΦΠΑ
Επικυρωτής και αναλυτής IBAN
Επικυρωτής και αναλυτής ISBN
Ηλεκτρονικό Λεξικό
Μετατροπέας Κεφαλαίων RMB
Μετατροπέας ημερολογίου
Μετατροπέας νομισμάτων
Οδηγίες φωτισμού IES
Συμβατότητα με άδειες χρήσης λογισμικού
Υπολογιστής SLA
Υπολογιστής ΔΜΣ
Υπολογιστής Ρυθμού Τρεξίματος
Αναζήτηση ιδιοτήτων ActiveDirectory LDAP
Αναλυτής Cookies
Αναλυτής MSG του Outlook
Αναλυτής URL
Αναλυτής αναπήδησης email
Αναλυτής αναφορών DMARC
Αναλυτής ηλεκτρονικού ταχυδρομείου
Ανιχνευτής τύπου αρχείου
Ανιχνευτής/Αποκωδικοποιητής συνόλου χαρακτήρων κειμένου
Αποκρυπτογράφος ευαίσθητων δεδομένων
Αποκωδικοποιητής EMV TLV
Αποκωδικοποιητής Safelink του Outlook
Αποκωδικοποιητής URL κοινής χρήσης SharePoint
Αποκωδικοποιητής συναλλαγών ETH
Αρχεία παρκέ Reader
Γεννήτρια TCPDump
Δεκαεξαδικός κωδικοποιητής/αποκωδικοποιητής
Δημιουργός URL
Δημιουργός εντολών Nmap
Δοκιμαστής DNS
Δοκιμαστής HTTPS
Δοκιμαστής διάδοσης DNS
Δοκιμαστής νεκρών εικονοστοιχείων
Εξολκέας ταυτότητας Snowflake
Επεκτατήρας σύντομων URL
Κονσόλα σειριακής θύρας
Μετατροπέας GZip/Deflate
Μετατροπέας Middle-End
Μετατροπέας ObjectId MongoDB
Μετατροπέας SMART Raw
Μετατροπέας αριθμών κινητής υποδιαστολής
Μετατροπέας κωδικοποίησης MIME
Πληροφορίες κωδικού πρόσβασης
Υπολογιστής αντίστασης
Φυλλάδιο με οδηγίες για την καλωδίωση RJ45 Cat6
键盘测试器
GIF σε MP4
OCR εικόνας και PDF
Αλλαγή μεγέθους εικόνας
Αναγνώστης εικόνας EXIF/Μεταδεδομένα/GPS/JPEG ποιότητας
Αφαίρεση EXIF
Αφαίρεση φόντου εικόνας
Εικόνα σε SVG (προβολή εικόνας)
Κάμερα εγγραφής
Μετατροπέας HEIC
Μετατροπέας ICO/PNG
Μετατροπέας μορφών εικόνας
Μετατροπέας χρώματος εικόνας
Περικοπή εικόνας
Προεπισκόπηση SVG
Σύγκριση εικόνων
Υδατόσημο
Αναλυτής αρχείων ICAL
Αντίστροφη μέτρηση
Γεννήτρια ICAL
Μετατροπέας αριθμών εβδομάδων
Μετατροπέας ζώνης ώρας
Μετατροπέας ημερομηνίας-ώρας
Ξυπνητήρι ώρας
Ποια μέρα;
Συγχώνευση iCal
Συναγερμός Cron/Εβδομαδιαίας Ημέρας
Υπολογιστής ETA
Υπολογιστής TTL
Υπολογιστής Διάρκειας
Υπολογιστής Ημερομηνίας+Διάρκειας
Υπολογιστής ημερών
Χρονόμετρο
HTML Prettifier
HTML ελαχιστοποιητής
HTML σε XHTML
HTML σε δεδομένα
Έλεγχος αντίθεσης χρωμάτων
Αναλυτής παράγοντα χρήστη
Βελτιωτής CSS
Γεννήτρια URL UTM
Γεννήτρια placeholder SVG
Γεννήτρια διαβάθμισης CSS
Δημιουργός τμημάτων αναζήτησης κειμένου URL
Εικόνα σε CSS
Επεξεργαστής HTML WYSIWYG
Καθαριστικό HTML
Καθαριστικό URL
Καταγραφή URL
Κωδικοί κατάστασης HTTP
Κωδικοποίηση/αποκωδικοποίηση συμβολοσειρών με μορφοποίηση URL
Μετατροπέας CSS XPath
Μετατροπέας εικονοστοιχείων REM
Μετατροπέας μονάδων CSS
Μετατροπέας χρωμάτων
Οντότητες HTML διαφυγής
Πληροφορίες συσκευής
Συμβολοσειρά Slugify
Τροχός Χρωμάτων
Τύποι MIME
I και L Checker
JSON σε TOON
TOON σε JSON
Tab σε κενά διαστήματα
Unicode σε GSM-7
Έξυπνη αντικατάσταση κειμένου και αλλαγή γραμμής
Αναγνώστης RSVP
Αποκρυπτογράφος συμβολοσειρών
Γεια σου, γεννήτρια.
Γεννήτρια εντολών Sed
Γεννήτρια κειμένου τέχνης ASCII
Γεννήτρια παραπομπών
Γεννήτρια/Banner Zalgo
Διάγραμμα δομής φακέλου
Διαφορά κειμένου
Διαχωριστής προτροπών AI
Δοκιμαστής Regex
Εικόνα σε ASCII Art
Εκτιμητής διακριτικών GPT
Εξαγωγέας γοργόνας
Εξαγωγή κειμένου από HTML
Επιλογέας emoji
Επιλογέας Τυχαίων Γραμμών
Εύρεση διπλότυπων γραμμών
Κείμενο στο αλφάβητο του ΝΑΤΟ
Κοινή χρήση συνδέσμων κοινωνικής δικτύωσης
Κωδικοποιητής/Αποκωδικοποιητής διακριτικών GPT
Μετατροπέας διάταξης πληκτρολογίου
Μετατροπέας κώδικα Μορς
Μετατροπέας λίστας
Μετατροπέας πεζών-κεφαλαίων
Μετατροπέας ρούνων
Μεταφραστής κειμένου
Μορφοποιητής Unicode
Ξεχωριστές λέξεις
Ονόματα κειμένου σε Unicode
Στατιστικά κειμένου
Συσκευασία αρχείων για AI
Σύγκριση γραμματοσειρών
Σύγκριση λιστών
Υπολογιστής Levenshtein
Argon2 Hasher
Bcrypt
Niceware Bytes σε Passphrase
PGP keygen
Paseto/PASERK Δημόσιο/Ιδιωτικό
Paseto/PASERK Τοπικό
Αναλυτής JWT
Αναλυτής SAML
Αναλυτής πιστοποιητικών/κλειδιών
Αποκρυπτογράφηση κρυπτογράφησης θησαυροφυλάκιου Ansible
Αρχείο Hasher
Γεννήτρια Hmac
Γεννήτρια JWT
Γεννήτρια ΕΚΕ
Γεννήτρια ζεύγους κλειδιών ECDSA
Γεννήτρια ζεύγους κλειδιών Ed25519
Γεννήτρια ζεύγους κλειδιών RSA
Γεννήτρια πιστοποιητικών X509
Κείμενο κατακερματισμού
Κρυπτογράφηση / αποκρυπτογράφηση κειμένου
Κρυπτογράφηση PGP
Κρυπτογράφηση RSA
Κρυπτογράφηση αρχείων PGP
Κρυπτογράφηση συμβολοσειρών Jasypt
Κρυπτογραφία AGE
Κωδικοποιητής/Αποκωδικοποιητής Bech32
Μετατροπέας πιστοποιητικών SSL
Μυστική Κοινοποίηση του Shamir
Υπογράφων και Επαληθευτών RSA/DSA/ECDSA
Υπολογιστής CRC
Docker Compose σε Quadlets
Docker επιθεώρηση για εκτέλεση Docker
Γεννήτρια RBAC Kubernetes
Γεννήτρια ετικετών Dockerfile
Δημιουργός σύνθεσης Traefik Docker
Εκτέλεση Docker σε Quadlets
Επικυρωτής Docker Compose
Ετικέτες Docker Pangolin
Λήψη εικόνων Docker
Μετατροπέας Docker Compose σε Docker run
Μετατροπέας Docker που εκτελείται σε Docker compose
Μετατροπέας μορφής Docker Compose
Σύνθεση Docker σε kubernetes
Σύνταξη Docker σε αρχείο .env
Το Docker εκτελείται στο kubernetes
Δημιουργός σημείων αναφοράς
Υπολογιστής αναλογίας διαστάσεων
Υπολογιστής γεωγραφικής απόστασης
Υπολογιστής ποσοστού
Αξιολογητής μαθηματικών
Δυαδική Αριθμομηχανή
Μαθηματικά OCR
Μετατροπέας Μαθηματικών Μορφών
Οπτικοποιητής Τριγωνομετρικών/Εξισώσεων Καμπυλών
Υπολογιστής φιλοδωρήματος
CSV σε δεδομένα
Excel σε δεδομένα
Torrent σε Magnet
Γεννήτρια ULID
Κανονικοποιητής ηλεκτρονικού ταχυδρομείου
Κείμενο σε Unicode
Κείμενο σε δυαδικό UTF-8
Κωδικοποιητής/αποκωδικοποιητής δεκαεξαδικού πίνακα Base64
Κωδικοποιητής/αποκωδικοποιητής συμβολοσειρών Base64
Μετατροπέας dBm mW
Μετατροπέας Γεωγραφικών Συντεταγμένων
Μετατροπέας αρχείων Base64
Μετατροπέας βάσης ακεραίων αριθμών
Μετατροπέας ιδιοτήτων
Μετατροπέας μονάδων αποθήκευσης δεδομένων
Μετατροπέας μορφής μεταβλητών περιβάλλοντος
Μετατροπέας πολλών μονάδων
Μετατροπέας ρωμαϊκών αριθμών
Μετατροπέας χαρακτήρων Unicode σε οντότητες Java
Υπολογιστής Κατανάλωσης και Εξόδων Ενέργειας
Υπολογιστής Απόσβεσης
Αναποδογυριστής κερμάτων
Επιλογέας καρτών
Ρόλερ ζαριών
Τροχός της τύχης
TOML Linter
TOML σε JSON
TOML σε YAML
Μετατροπέας Ενέργειας Τροφίμων
Μετατροπέας Μονάδων Δύναμης
Μετατροπέας Μονάδων Εμβαδού
Μετατροπέας Μονάδων Ενέργειας
Μετατροπέας Μονάδων Μάζας
Μετατροπέας Φωτισμού
Μετατροπέας επιτάχυνσης
Μετατροπέας θερμοκρασίας
Μετατροπέας ισχύος
Μετατροπέας μονάδων γωνίας
Μετατροπέας μονάδων μήκους
Μετατροπέας μονάδων πίεσης
Μετατροπέας μονάδων όγκου
Μετατροπέας προθεμάτων SI
Μετατροπέας ρυθμού ροής όγκου
Μετατροπέας συχνότητας
Μετατροπέας ταχύτητας
Υπολογιστής γυμναστικής
Docker Cheatsheet
Git cheatsheet
Jq Cheatsheet
Κοινό Regex Cheatsheet
Νανο Φύλλο Εξαρτήσεων
Φυλλάδιο με συμβουλές για το K8s
Φύλλο ελέγχου Docker Compose
Φύλλο ελέγχου Docker SWARM
Φύλλο ελέγχου Dockerfile
Φύλλο ελέγχου Regex
Φύλλο ελέγχου Sed
Φύλλο ελέγχου επιλογέων CSS
Φύλλο με τσιπς Bash
Φύλλο οδηγιών για την εντολή chmod
Φύλλο οδηγιών για τις εντολές Tmux
Φύλλο οδηγιών εντολών οθόνης
Φύλλο οδηγιών σύνταξης JSONPath
Φύλλο οδηγιών σύνταξης XPath
Φύλλο οδηγιών χρήσης Nginx
Φύλλο οδηγιών χρήσης Powershell
Φύλλο οδηγιών χρήσης VIM
Φύλλο οδηγιών χρήσης σημασιολογικής υποβολής Git
Φύλλο οδηγιών χρήσης της εντολής Zellij
Φύλλο πληροφοριών Markdown
HTML σε markdown
Markdown Lorem Ipsum
tools.markdown-format-converter.name
Από Epub σε Markdown
Βελτιωτής πίνακα Markdown
Γεννήτρια toc markdown
Γεννήτρια πίνακα Markdown
Διαφορά Markdown
Επεξεργαστής Markdown
Επικόλληση ως Markdown
Μείωση σε DOCX
Μείωση σε HTML
Μείωση σε κείμενο
Μείωση στα δεδομένα
Προεπισκόπηση Markdown

Φύλλο οδηγιών χρήσης Powershell

Το Powershell είναι μια ισχυρή γλώσσα scripting και κέλυφος γραμμής εντολών που έχει σχεδιαστεί για διαχείριση και αυτοματοποίηση συστημάτων. Παρέχει ένα ευρύ φάσμα cmdlet και λειτουργιών που επιτρέπουν στους χρήστες να διαχειρίζονται και να αυτοματοποιούν εργασίες σε συστήματα Windows αποτελεσματικά.

PowerShell is a shell and scripting language built on .NET. Unlike POSIX shells it passes objects down the pipeline rather than text, so Get-Process | Sort-Object CPU sorts real numbers instead of parsing columns.

ℹ️ PowerShell 7+ (pwsh) is cross-platform and current; Windows PowerShell 5.1 (powershell.exe) ships with Windows and is in maintenance. Check with $PSVersionTable.

🔎 Finding Your Way

# what commands exist for a noun?
Get-Command *service*
Get-Command -Module Microsoft.PowerShell.Management

# help, with the part everyone actually wants
Get-Help Get-ChildItem -Examples
Get-Help Get-ChildItem -Full
Update-Help

# what properties and methods does this object have?
Get-Process | Get-Member

# what did that command actually return?
Get-Process | Select-Object -First 1 | Format-List *

📦 Variables

SyntaxDescription
$var = "string"Assign a variable
[int]$var = 5Strongly typed variable
[ValidateRange(1,9)][int]$x=1Typed and constrained
$a, $b = 'a', 'b'Assign several at once
$a, $b = $b, $aSwap two values
$global:var = "v"Scope: global, script, local, private
${my var}A name containing spaces or punctuation
$env:PATHAn environment variable
Remove-Variable xDelete a variable

📚 Arrays

SyntaxDescription
"a","b","c"Array of strings
@()Empty array
,"hi"Array of exactly one element
1,(2,3),4Nested array
$arr[5]Sixth element (0-based)
$arr[2..20]A range of elements
$arr[-1]The last element
$arr[-3..-1]The last three
$arr[1,4+6..9]Positions 1, 4 and 6–9
$arr[($arr.length-1)..0]Reversed
@(Get-Process)Force a single result into an array
$z = $arrA + $arrBConcatenate
$list = [System.Collections.Generic.List[int]]::new()A growable list — much faster than += in a loop

🗂 Hash Tables

SyntaxDescription
$hash = @{}Empty hash table
@{foo=1; bar='two'}Initialise with values
[ordered]@{a=1; b=2}Keeps insertion order
$hash.key1 / $hash["key1"]Read a value
$hash.key1 = 1Write a value
$hash.Remove("key1")Delete a key
$hash.ContainsKey("key1")Test for a key
$hash.GetEnumerator() | Sort-Object KeyIterate in key order
[pscustomobject]@{x=1; z="z"}Turn a hash into an object

🔤 Strings

SyntaxDescription
"$var expands"Double quotes interpolate
'$var does not'Single quotes are literal
"Total: $($items.Count)"$( ) evaluates an expression inside a string
"{0} of {1}" -f $a, $bThe format operator
"col1`tcol2`n"`t tab, `n newline, ` escapes
@"…"@ / @'…'@Here-string, expanding / literal
"abc".ToUpper().NET methods work on strings
$s -split ',' / $a -join ','Split and join
$s.Trim() / .PadLeft(5)Trim and pad
$s -replace 'a','b'Regex replace

💬 Comments & Escaping

# a single-line comment

<#
  a block comment, also used for help text
#>

# the backtick is the escape character
Write-Output "He said `"hi`""
Write-Output "line one`nline two"

# and the line-continuation character
Get-ChildItem -Path C:\ `
              -Recurse `
              -Filter *.log

📁 Files & Paths

CommandDoes
Get-Location (pwd)Current directory
Set-Location (cd)Change directory
Get-ChildItem (ls, dir)List a directory
Get-Content (cat)Read a file
Set-Content / Add-ContentOverwrite / append
Out-File / Out-Null / Out-StringWrite to a file / discard / stringify
New-Item -ItemType DirectoryCreate a file or folder
Copy-Item / Move-Item / Rename-Item / Remove-ItemCopy, move, rename, delete
Test-PathDoes it exist?
Split-Path -ParentThe directory part of a path
Join-Path a bBuild a path portably
Resolve-PathExpand to a full path
Get-FileHash file.zipChecksum a file
# read a large file line by line without loading it all
Get-Content big.log -ReadCount 1000 | ForEach-Object { $_ }

# tail -f
Get-Content app.log -Wait -Tail 20

# every .log modified in the last day
Get-ChildItem C:\logs -Recurse -Filter *.log |
  Where-Object LastWriteTime -gt (Get-Date).AddDays(-1)

🔀 Flow Control

if ($x -eq 5) { "five" } elseif ($x -gt 5) { "more" } else { "less" }

while ($x -lt 10) { $x; $x++ }

do { $x++ } while ($x -lt 10)

for ($i = 0; $i -lt 10; $i++) { $i }

foreach ($file in Get-ChildItem C:\) { $file.Name }

1..10 | ForEach-Object { $_ * 2 }

# parallel, PowerShell 7+
1..10 | ForEach-Object -Parallel { Start-Sleep 1; $_ } -ThrottleLimit 5

switch ($value) {
  'a'       { 'letter a'; break }
  { $_ -gt 10 } { 'big' }
  default   { 'something else' }
}

⚖️ Operators

OperatorMeaning
= += -= *= /= %= ++ --Assignment
-eq / -neEqual / not equal
-gt -ge -lt -leNumeric comparison
-and -or -xor -not !Logical
-like / -notlikeWildcard match (*, ?)
-match / -notmatchRegex match — fills $Matches
-replace 'a','b'Regex replace
-contains / -inArray membership, either way round
-split / -joinSplit a string / join an array
-is / -isnot / -asType test and conversion
-fFormat a string
..Range
$( ) / @( )Sub-expression / array sub-expression
& / .Invoke a command / dot-source a script
?? / ??=Null-coalescing (PowerShell 7+)
?. / ?[ ]Null-conditional access (PowerShell 7+)

⚠️ Comparisons are case-insensitive by default. Use -ceq, -clike, -cmatch when case matters.

🧱 Objects & the Pipeline

# properties and methods
(Get-Date).Date
(Get-Date).AddDays(-7)
"string".ToUpper()

# static members
[DateTime]::Now
[Math]::Round(3.14159, 2)
[System.Net.Dns]::GetHostByAddress("127.0.0.1")

# build your own objects
[pscustomobject]@{ Name = 'web01'; Status = 'up' }

# add a calculated property
Get-Process | Select-Object Name, @{ Name = 'MB'; Expression = { [math]::Round($_.WorkingSet / 1MB, 1) } }

🔍 Filter, Sort, Group, Format

ExampleDoes
Get-Process | Where-Object CPU -gt 100Filter (simple syntax)
Get-Process | Where-Object { $_.Name -like "chrome*" }Filter (script block)
Get-Process | Sort-Object WorkingSet -DescendingSort
Get-Process | Select-Object -First 5Take the first few
"a","b","a" | Select-Object -UniqueDeduplicate
Get-Service | Group-Object StatusGroup
Get-Process | Measure-Object WorkingSet -Sum -AverageAggregate
Get-Process | Select-Object -ExpandProperty ModulesFlatten a nested property
Get-Process | Format-Table Name, Id -AutoSizeTable output
Get-Item C:\ | Format-List *Every property
Get-Content log.txt | Select-String "error"grep
Compare-Object $a $bDiff two collections

💡 Format-* is always the last step — its output is display text, not objects, so nothing downstream can filter it.

🧰 Functions & Scripts

function Get-Square {
  param(
    [Parameter(Mandatory)][int]$Number,
    [switch]$Verbose
  )
  $Number * $Number
}

Get-Square -Number 7

# an advanced function: pipeline input, -WhatIf, -Verbose for free
function Remove-OldLog {
  [CmdletBinding(SupportsShouldProcess)]
  param(
    [Parameter(ValueFromPipeline)][string]$Path,
    [int]$Days = 30
  )
  process {
    if ($PSCmdlet.ShouldProcess($Path, "delete")) {
      Remove-Item $Path
    }
  }
}

🚨 Error Handling

try {
  Get-Content missing.txt -ErrorAction Stop
}
catch [System.IO.FileNotFoundException] {
  Write-Warning "no such file"
}
catch {
  Write-Error "unexpected: $($_.Exception.Message)"
}
finally {
  "always runs"
}

# make non-terminating errors terminate, so catch can see them
Get-Item missing -ErrorAction Stop

# per-session default
$ErrorActionPreference = 'Stop'

# the most recent error, and the exit code of the last native command
$Error[0]
$LASTEXITCODE
$?

🌐 Web & Data

# REST calls, parsed into objects
$data = Invoke-RestMethod https://api.github.com/repos/vuejs/core
$data.stargazers_count

# with headers and a JSON body
Invoke-RestMethod -Uri $url -Method Post `
  -Headers @{ Authorization = "Bearer $token" } `
  -ContentType 'application/json' `
  -Body (@{ name = 'demo' } | ConvertTo-Json)

# the raw response, for scraping or downloads
Invoke-WebRequest $url -OutFile page.html

# convert between formats
Get-Process | Select-Object Name, Id | ConvertTo-Json
Get-Content data.json | ConvertFrom-Json
Import-Csv users.csv | Where-Object Dept -eq 'IT' | Export-Csv it.csv -NoTypeInformation
Export-Clixml / Import-Clixml   # round-trips real objects

🖥 System Administration

# processes
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Stop-Process -Name notepad -Force

# services
Get-Service | Where-Object Status -eq 'Running'
Restart-Service -Name Spooler
Set-Service -Name Spooler -StartupType Manual

# background jobs
$job = Start-Job { Start-Sleep 10; "done" }
Receive-Job $job -Wait

# scheduled tasks, event logs, system info
Get-ScheduledTask
Get-WinEvent -LogName System -MaxEvents 20
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, FreeSpace
Test-Connection example.com -Count 2

🔗 Remoting

# one command on many machines
Invoke-Command -ComputerName web01, web02 -ScriptBlock { Get-Service Spooler }

# an interactive session
Enter-PSSession -ComputerName web01
Exit-PSSession

# a reusable session
$s = New-PSSession -ComputerName web01 -Credential (Get-Credential)
Invoke-Command -Session $s { hostname }
Remove-PSSession $s

📦 Modules & Execution Policy

# find, install, load
Find-Module Pester
Install-Module Pester -Scope CurrentUser
Import-Module Pester
Get-Module -ListAvailable

# where does PowerShell look for modules?
$env:PSModulePath -split [IO.Path]::PathSeparator

# scripts refuse to run? check and relax the policy
Get-ExecutionPolicy -List
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

# your profile script
notepad $PROFILE

🧾 Automatic Variables

VariableHolds
$_ / $PSItemThe current pipeline object
$ArgsUnbound arguments to a script or function
$ErrorThe error history, newest first
$MatchesCapture groups from the last -match
$PSVersionTableVersion and edition information
$PWD / $HOMECurrent directory / home directory
$PSScriptRootThe folder the running script lives in
$LASTEXITCODEExit code of the last native command
$?Did the last command succeed?
$true $false $nullConstants
$PROFILEPath to your profile script

💾 PSDrives

DriveContents
Env:Environment variables
Alias:Command aliases
Function:Defined functions
Variable:Variables
Cert:Certificate stores
HKLM: / HKCU:The registry
WSMan:WinRM configuration
Set-Location HKLM:\SOFTWARE
Get-ChildItem Env: | Sort-Object Name
Get-ChildItem Variable:

⌨️ Aliases Worth Knowing

AliasReal commandAliasReal command
ls, dir, gciGet-ChildItem%ForEach-Object
cat, gcGet-Content?Where-Object
cd, slSet-LocationselectSelect-Object
cp, copyCopy-ItemsortSort-Object
rm, delRemove-Itemft / flFormat-Table / Format-List
ps, gpsGet-ProcessslsSelect-String
killStop-ProcessgmGet-Member

⚠️ Aliases are for the console, not for scripts — write the full cmdlet name in anything you commit.

🔣 Regular Expressions

PatternMatches
\w / \WWord character / non-word
\s / \SWhitespace / non-whitespace
\d / \DDigit / non-digit
{n} {n,} {n,m}Quantifiers
^ / $Start / end of the string
(?<name>…)Named capture group
# -match fills $Matches
if ("build-1234" -match '(?<name>\w+)-(?<id>\d+)') { $Matches.id }

# extract every match from a file
Select-String -Path app.log -Pattern '\b\d{1,3}(\.\d{1,3}){3}\b' -AllMatches |
  ForEach-Object { $_.Matches.Value } | Sort-Object -Unique

PowerShell uses the .NET regex engine — see .NET regular expressions.

📚 Resources

  • PowerShell documentation
  • Cmdlet reference
  • PowerShell Gallery
  • Style guide (community)