POWERSHELL SCRIPT COPY fILES USING ROBOCOPYPOWERSHELL SCRIPT COPY fILES USING ROBOCOPY
Please find powershell code which will assist you in copying data from source location to destination using robocopy.exe.
This script will display progress of copy along with time remaining in readable format.
System Requirements:
- A windows machine
- Powershell (with windows 8 and 2012 above no need to install also with windows 2008).
- Run script as administrator.
Please find code below:
RCOPY.PS1
$src,$dst=0
Clear-Host
Add-Type -AssemblyName System.Windows.Forms
$frm=New-Object System.Windows.Forms.Form
$frm.size=New-Object System.Drawing.Size(400,300)
$frm.text=”Robocopy – Jeevan Bobba”
$frm.StartPosition = [System.Windows.Forms.FormStartPosition]::Manual
$frm.Location=new-object System.Drawing.Point(800,0)
$frm.MaximizeBox=$false
$lbl1=new-object System.Windows.Forms.Label
$lbl1.text=”Enter Source below”
$lbl1.top=50
$lbl1.left=50
$lbl1.Width=200
$lbl2=New-Object System.Windows.Forms.Label
$lbl2.text=”Enter Destination below”
$lbl2.top=120
$lbl2.left=50
$lbl2.Width=200
$sourcetext=new-object System.Windows.Forms.TextBox
$sourcetext.top=80
$sourcetext.left=50
$sourcetext.Width=300
$desttext=New-Object System.Windows.Forms.TextBox
$desttext.top=150
$desttext.left=50
$desttext.Width=300
$copybutn=new-object System.Windows.Forms.Button
$copybutn.top=180
$copybutn.left=150
$copybutn.text=”Start Robocopy”
$copybutn.Width=100
$frm.Controls.add($lbl1)
$frm.Controls.add($lbl2)
$frm.Controls.add($sourcetext)
$frm.Controls.add($desttext)
$frm.Controls.add($copybutn)
$exec={
if(($sourcetext.text -ne “”) -and ($desttext.text -ne “”))
{
if((test-path $sourcetext.text.ToString()) -and (test-path $desttext.text.ToString()))
{
$src = Get-ChildItem $sourcetext.text -recurse -ErrorAction SilentlyContinue | Measure-Object -property length -sum
$src=$src.sum
$runcmd=”robocopy”
$info=new-object System.Diagnostics.ProcessStartInfo
$info.FileName=”robocopy.exe”
$info.Arguments=”$($sourcetext.text.ToString()) $($desttext.text.ToString()) /E /ZB /DCOPY:T /COPYALL /R:1 /W:1 /LOG:c:\Robocopy.log ”
$info.UseShellExecute=$false
$info.CreateNoWindow=$false
$cmd1=[System.Diagnostics.Process]::Start($info)
$clk=[system.diagnostics.stopwatch]::startNew()
while(Get-Process -Name $cmd1.ProcessName -ErrorAction SilentlyContinue)
{
$clksec=[math]::Round(($clk.ElapsedMilliseconds/1000))
$dst= Get-ChildItem $desttext.Text -recurse -ErrorAction SilentlyContinue | Measure-Object -property length -sum
$dst=$dst.sum
[double]$exttme=[math]::Round(($clksec/$dst)*$src)
try
{
$dd=[timespan]::FromSeconds($exttme)
}
catch
{}
$dd=”$($dd.Hours):$($dd.Minutes):$($dd.Seconds)”
$prog=$dst/$src*100
$prog=[math]::Round($prog)
#write-host “Total $($prog) % done” -ForegroundColor Green -BackgroundColor White
write-progress -Activity “copying from $($sourcetext.text) to $($desttext.text) and Estimated time left in hh:mm:ss $($dd)” -PercentComplete $prog -Status “$prog % completed”
}
$clk.Stop()
write-host “All copied,check c:\robocopy.log and total time taken $($clksec) seconds” -ForegroundColor Green
$frm.dispose()
}
else
{write-host “check source or destination path ” -ForegroundColor DarkRed -BackgroundColor White
$frm.dispose()
}
}
else
{
write-host “check source or destination path ” -ForegroundColor DarkRed -BackgroundColor white
#[void]$frm.close()
$frm.dispose()
}
}
$copybutn.add_click($exec)
$rt=$frm.ShowDialog()
$frm.Dispose()
alx139
I’ve learn several excellent stuff here. Certainly worth bookmarking for revisiting. I wonder how a lot effort you put to create this kind of magnificent informative website.
a6e6ww
94b67z
fantastic points altogether, you simply gained a new reader. What would you recommend in regards to your post that you made some days ago? Any positive?
45wlrw
Hello, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot of spam remarks? If so how do you stop it, any plugin or anything you can recommend? I get so much lately it’s driving me mad so any assistance is very much appreciated.
Thanks for the sensible critique. Me & my neighbor were just preparing to do some research about this. We got a grab a book from our area library but I think I learned more clear from this post. I am very glad to see such wonderful information being shared freely out there.