Monday, 9 January 2023

Get-ChildItem - Powershell command to find items in a specified location

The 'Get-ChildItem' cmdlet gets the items in one or more specified locations.

 It can be used to list the files and directories in a particular directory, or to list the registry keys and values in a registry hive.


How to use 'Get-ChildItem' to list the files in the current directory:
                    
Get-ChildItem


We can also specify a different directory to list the files and directories in that directory by using the -Path parameter: 

Get-ChildItem -Path D:\TestDir


To get the list of files with a particular extension, suppose .txt files, using Get-ChildItem Command, it can be used as:

 Get-ChildItem -Filter *.txt


We can find more about Get-ChildItem command and its usage by using:

                    Get-Help Get-ChildItem 

 Get-ChildItem [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device | Directory | Encrypted | Hidden | IntegrityStream | Normal | NoScrubData | NotContentIndexed |Offline | ReadOnly | ReparsePoint | SparseFile | System | Temporary}] [-Depth <System.UInt32>] [-Directory] [-Exclude <System.String[]>] [-File] [-Force] [-Hidden] [-Include     <System.String[]>] -LiteralPath <System.String[]> [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]


    Get-ChildItem [[-Path] <System.String[]>] [[-Filter] <System.String>] [-Attributes {Archive | Compressed | Device | Directory | Encrypted | Hidden | IntegrityStream | Normal | NoScrubData | NotContentIndexed | Offline | ReadOnly | ReparsePoint | SparseFile | System | Temporary}] [-Depth <System.UInt32>] [-Directory] [-Exclude <System.String[]>] [-File] [-Force] [-Hidden] [-Include <System.String[]>] [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]


Wednesday, 21 December 2022

Replace String in Python

 

At times we need to replace strings in a statement or in a file. We will see here how we can replace a string with another in python.


To Replace a string in python, we can user replace() method.

Example: 

        old_string = "This is the old string."

        new_string = old_string.replace("old", "new")

        print(new_string)



This can also be achieved by using the 're' module of python, which is used for advanced string and regex replacements.

Code: 
    
        import re

        old_string = "This is the old string."
        new_string = re.sub("old", "new", old_string)
        print(new_string)



        Output: This is the new string.




Saturday, 12 February 2022

Get Current Location in Windows PowerShell and Linux

 When you are working on a Windows machine or Linux machine, you run your commands on a specific location. It is the location where you are presently inside, namely the current folder or directory.


How do you get the current location in Windows PowerShell?

Powershell uses the noun "Location"  to get the current directory or location. 

The command is "Get-Location"


Command:

 Get-Location


Output:

Path

----

C:\Users\chinm




How do you get the current location in Linux?

The command to get current location is : pwd  (present working directory)






Monday, 5 July 2021

PowerShell: Calculate the power using math function

 Here is a Powershell script 

  • which gets two numbers from the command line 
  • if there is no parameters, read them from the keyboard
  • Calculate the power (first param on the power of the second )
  • Display the output
  • E.g. .\calcPower.ps1 2 3 => 8

 

PowerShell Script:


                    

#assign argument values
$num1 = $args[0]
$num2 = $args[1]

#check if the value entered is null
if ($num1 -like "$null"){
    #if null, ask for user input
    $num1 = read-host "Please enter the 1st number"
}

if ($num2 -like "$null"){
    $num2 = read-host "Please enter the 2nd number"
}

#calculate power using 'pow' function
$power = [Math]::Pow($num1,$num2)

#display output
Write-Output "$num1 to the power $Num2 is $power"

 

 


Thursday, 18 March 2021

PowerShell Script: Copy Several files with same name to a folder without overriding with a differentiator

Powershell Script Description:

PowerShell script that will go through a directory called "C:\Deploy"

that has several subfolders with a file named "index.html in each of the subfolders and copy all the files named "index.html to a new folder called "C:\AllIndex" but not overwrite.

The files after copying would be named index001.html, index002.html, index003.html...



#source dir

$src = "C:\Deploy"

#destination dir 
$destn = "C:\AllIndex"

 

#Get the list of index.html
$index_html_list = (Get-ChildItem -Path "$src" -Name "index.html" -Recurse -Force)

 

# initialize counter
$counter = 1

 

#run in loop for all index.html 
foreach ($html in $index_html_list){
$counter = $counter.ToString('000')

#copy each index.html to new file in destination dir 
Copy-Item -Path "$src\$html" -Destination "$destn\index$counter.html"
#increment counter
$counter = [int]$counter + 1

}

 

Wednesday, 24 February 2021

PowerShell: Find the list of empty folders in a Directory

 

If you would like to find the empty folders in a directory you can use the below PowerShell script to find out.



Script:

$path = "D:\"   #change the value based on need

        #get the list of directories in the given path recursively  

         Get-ChildItem -Path $path -Directory -Recurse | ForEach-Object `

            #verify the count of files and folders in the directories are zero 

    if($_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0) 

        {

            "$($_.name)"            

        } 

Thursday, 18 February 2021

PowerShell: Check if the entered number is a valid Binary and print its decimal value

Powershell Script Description: 

Pass a number to a PowerShell script as an argument and validate whether it is a valid Binary. If the entered number is a valid binary, display its decimal value.


Script: isValidBinary.ps1

if (  $args[0] ){
    $num = $args[0]

    try {
        $value = [convert]::ToInt32(“$num”,2)
        Write-Host "'$num' is a valid Binary" -ForegroundColor Green
        Write-host "Decimal Value: $value"
        }

    catch{
        Write-Host  "'$num' is not a valid Binary" -ForegroundColor Red
    }
}
else{
    Write-Host "You must pass a number to the script"
}

Output: