• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1290
  • Last Modified:

POWERSHELL COMMAND FOR COPY-ITEM

Hi there

I'm looking for a powershell command that is equivalent to the following dos command:

 for /f %%N in (test.txt) DO CALL robocopy "D:\User Areas\Reenrolled\%%N\My Documents" "\\SERVER\E$\Area\%%N\My Documents\sub folder" /E /R:0 > C:\diditwork.txt

I'm sure its something to do wiht assigning a variable somewhere  but my mind has gone blank

Many thanks
0
Colchester_Institute
Asked:
Colchester_Institute
  • 4
  • 2
  • 2
2 Solutions
 
Justin OwensITIL Problem ManagerCommented:
Are you wanting PowerShell to do the copying, or are you wanting PowerShell to call Robocopy?
0
 
Colchester_InstituteAuthor Commented:
Powershell to do the copying...Have a list of names in the text file that need to be used so for example the Text file might contain:
DrUltima
Joeblogs
MickyMouse

and i need those names to be used as the areas that are being copied is:

Server1\E:\Users\<Txt file name here eg Joeblogs>\My Docs

and its being copied to

Server2\E:\Users\<Txt file name here eg Joeblogs>\My Docs\Subfolder

Like i said i know i can do this using robocopy i'd just rather start using Powershell to do such things and am sure i'm just being dense...Its Friday arvo! LOL
0
 
soostibiCommented:
Update the variables in lines 3-5 and the path to the text file in line 8 and the last, and try this:
Import-Module bitstransfer

$sourcedir = "D:\User Areas\Reenrolled"
$upload = "\\SERVER\E$\Area"
$MyDocuments = "My Documents"
$subfolder = "sub folder"

$ProgressPreference = 'SilentlyContinue'
Get-Content c:\test.txt | ForEach-Object {
	$currfolder = $_
	if(!(Test-Path "$upload\$currfolder\$Mydocuments\$subfolder")){
		New-Item -Path "$upload\$currfolder\$Mydocuments" -Name $subfolder -ItemType directory  > $null
	}
	if(Test-Path "$sourcedir\$currfolder\$mydocuments"){
		Get-ChildItem "$sourcedir\$currfolder\$mydocuments" -Recurse | ForEach-Object {
			Start-BitsTransfer -Source $_.fullname -Destination "$upload\$currfolder\$MyDocuments\$subfolder\" -TransferType upload
			if($?){"successfully copied: $($_.fullname)"}else{"error during copy: $($_.fullname)"}
		}
	}
} > C:\diditwork.txt

Open in new window

0
Worried about phishing attacks?

90% of attacks start with a phish. It’s critical that IT admins and MSSPs have the right security in place to protect their end users from these phishing attacks. Check out our latest feature brief for tips and tricks to keep your employees off a hackers line!

 
Justin OwensITIL Problem ManagerCommented:
That is cleaner than what I was doing... Well done, soostibi.
0
 
Colchester_InstituteAuthor Commented:
Hi soostibi

That works perfect. ty..Just one more question incase i decide to add it or change it later.....How do i either make it move the original files or once its copied them delete the original files?

Many thanks
0
 
Colchester_InstituteAuthor Commented:
Also one thing i did notice.....Any subfolders weren't copied over...The files were but not the folders so the Files just ended up in one big folder for each user
0
 
soostibiCommented:
This is an updated version (I do not exactly understand the role of your "subfolder").
Import-Module bitstransfer  
  
$sourcedir = "D:\User Areas\Reenrolled"  
$upload = "\\SERVER\E$\Area"  
$MyDocuments = "My Documents"  
$subfolder = "sub folder" 

$ProgressPreference = 'SilentlyContinue'
Get-Content c:\ee\test.txt | ForEach-Object {
	$currfolder = $_
	if(Test-Path "$sourcedir\$currfolder\$mydocuments"){
		Get-ChildItem "$sourcedir\$currfolder\$mydocuments" -Recurse | ?{!$_.psiscontainer} | ForEach-Object {
			$newfullpath = ($_.directoryname -replace ([regex]::Escape("$sourcedir\$currfolder\$mydocuments")), 
				"$upload\$currfolder\$MyDocuments\$subfolder")
			if(!(Test-Path $newfullpath)){
				New-Item -Path (split-path $newfullpath -parent) -Name (split-path $newfullpath -leaf) -ItemType directory  > $null
			}
			Start-BitsTransfer -Source $_.fullname -Destination $newfullpath -TransferType upload
			if($?){"successfully copied: $($_.fullname)"}else{"error during copy: $($_.fullname)"}
		}
	}
} > C:\diditwork.txt

Open in new window

0
 
Colchester_InstituteAuthor Commented:
The role of the sub folder is basically that i'm moving data from what was an old domain and placing it into the users area on the new domain.  But what them to easily be albe to find the data from the old one :-) Many thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Protect Your Employees from Wi-Fi Threats

As Wi-Fi growth and popularity continues to climb, not everyone understands the risks that come with connecting to public Wi-Fi or even offering Wi-Fi to employees, visitors and guests. Download the resource kit to make sure your safe wherever business takes you!

  • 4
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now