Windows Powershell
Revision as of 15:53, 28 January 2021 by Bacchas (talk | contribs) (→Find multiple files then copy them to a directory)
Script that create a folder based on today's date, then copy the contents of one folder to another
$datecurrent = get-date -Format MM-dd-yyyy $apath = "C:\Users\John\Desktop\leaves" $btest = "C:\Users\john\Desktop\leaves\pdf-sliced" $ctest = "C:\Users\john\Desktop\leaves\atest" #create directory if ( -not (Test-Path "$ctest\$datecurrent" -PathType Container) ){ New-Item -ItemType directory -Path "$ctest\$datecurrent" }else{ "Directory already exist! Maybe you ran the program twice" Read-Host -Prompt "Hit Enter to Exit" break } if( Test-Path "$ctest\$datecurrent" -PathType Container ){ #open folder ii "$ctest\$datecurrent" #copy files from source to destination Copy-Item -Path $btest\* -Destination "$ctest\$datecurrent" -Verbose }else{ "There Was an error - Contact Robert" } Read-Host -Prompt "Hit Enter to Exit"
save with .ps1 extension
Copy all files with specific extension
$datecurrent = get-date -Format MM-dd-yyyy $atest = "C:\Users\Robert\Desktop\leaves" $ctest = "C:\Users\Robert\Desktop\leaves\atest
Get-ChildItem -Path "$atest\*" -Include *.pdf -Recurse | Copy-Item -Destination "$ctest\$datecurrent" -Verbose
CD to a specific directory
set-location 'g:\box\All Flds\web\amazon\test'
Search for Multiple files
Get-ChildItem | Where-Object {$_.Name -like "*catch*" -or $_.Name -like "*dream*" -or $_.Name -like "*david*"} > output.txt
Find multiple files then move them to a directory
$filesfound = Get-ChildItem | Where-Object {$_.Name -like "*catch*" -or $_.Name -like "*dream*" -or $_.Name -like "*david*"} foreach ($file in $filesfound){ $parent = Split-Path $file.fullname -Parent Move-Item $file.fullname -Destination $parent\test }
Eject Drive *Not tested
$vol = get-wmiobject -Class Win32_Volume | where{$_.drivetype -eq '2'} $Eject = New-Object -comObject Shell.Application $Eject.NameSpace(17).ParseName($vol.driveletter).InvokeVerb(“Eject”)