diff --git a/6.File_Management/File Management with PowerShell.md b/6.File_Management/File Management with PowerShell.md index ffd8677..3f14c65 100644 --- a/6.File_Management/File Management with PowerShell.md +++ b/6.File_Management/File Management with PowerShell.md @@ -65,3 +65,128 @@ $fileSize = Get-ChildItem -Path "C:\mrsh\test.ps1" -Recurse -Force | Measure-Obj $fileSize.Sum/1KB ``` + +## Environement Variable + +Environment variables in PowerShell are used to store system-wide +or user-specific values that programs and scripts can access during execution. +They help manage configuration settings such as file paths, system behavior, +or application options without hard-coding them into scripts. +In PowerShell, environment variables are accessed through the `Env:` drive, +for example `$Env:PATH`, and can be created or modified using simple assignment. +This makes scripts more flexible, portable, and easier to maintain +across different systems. + + +```powershell +$env:ProgramFiles +$env:ProgramData +$env:SystemDrive +$env:SystemRoot +``` + +## Match Replace + +```powershell +$string = "Jello world!" + +if($string -match "Hello"){ + Write-Output "The string matches the pattern!" + $newString = $string -replace "Hello" , "Hi" + Write-Output $newString +} +``` + +## TextFile + +Text files are commonly used to store and exchange data in a simple, +readable format. + +### Set-Content + +The `Set-Content` cmdlet is used to create a new text file +or overwrite an existing one with specified content. + +```powershell +Set-Content -Path "C:\mrsh\endor.txt" -Value "Ewoks" +``` + +### Get-Content + +The `Get-Content` cmdlet is used to read the contents of a text file, +returning its data line by line, which is useful for processing or analyzing text. + +```powershell +Get-Content -Path "./endor.txt" +``` + +### Add-Content + +```powershell +Add-Content -Path "C:\mrsh\endor.txt" -Value "Jedi" +``` + +## CSV + +In PowerShell, CSV (Comma-Separated Values) files are widely used for storing and +exchanging structured data such as tables and lists. + + +### Import-CSV + +PowerShell provides the `Import-Csv` cmdlet to read CSV files +and convert each row into an object with properties based on the column headers, +making the data easy to work with. + +```powershell +Import-CSV -Path ".\Simpsons.csv" +``` +### Export-CSV + +The `Export-Csv` cmdlet is used to save objects back into a CSV file. +This object-based approach allows for efficient data manipulation, +filtering, and reporting. + +```powershell +Get-ComputerInfo | Export-CSV -Path "C:\mrsh.com\same-simpson.csv" +``` + +## JSON + +In PowerShell, JSON (JavaScript Object Notation) is commonly used to +store and exchange structured data in a lightweight, +human-readable format. +This makes it easy to work with APIs, configuration files, +and complex data structures. JSON support in PowerShell enables seamless data interchange and efficient automation. + +### ConvertFrom-Json + +The `ConvertFrom-Json` cmdlet to transform JSON data into PowerShell objects. + +```powershell +$json = Get-Content -Path ".\simpsons.json" -Raw +$data = ConvertFrom-Json -InputObject $json +``` + +### ConvertTo-Json + +and `ConvertTo-Json` to convert objects back into JSON format. + +```powershell +Get-NetAdapter | ConvertTo-Json | Out-File ".\NetworkAdapter.json" +``` +## XML + +In PowerShell, XML is used to store and manage structured data in a hierarchical +format. +XML data is represented as objects, making it easy to navigate, +extract, and modify elements and attributes. +This makes XML useful for working with configuration files, +system data, and applications that rely on structured document formats. + +```powershell +$xml_file = Get-Content C:\mrsh\simpsons.xml +$xml_file.simpsons.charcter[0] +$xml_file.save("C:\mrsh\simpsons-nex.xml") +``` +