Solved

Powershell move-item cmdlet not working in loop

Posted on 2008-11-03
4
1,534 Views
Last Modified: 2013-11-10
Hi,
I'm developing a Powershell script which will copy data files and run them threw a Powershell script.  The last line in the loop of the script is to move the particular CSV file to a different folder.  This is not working in the script.  Can someone take a look and see if there is a coding error?

Please note that this script is using cmdlets from the Netcmdlets script.  Thanks.

#Powershell Script within Netcmdlets profile:
 
#    $LogDirectory = "$Env:temp"
        $LogDirectory = "C:\EL\RPSCSVParser\FromBanner\logs\"
 
get-ftp -server mylinuxserver -user myuser -password mypassword -ssh -force -path /misc/path/*.csv | foreach-object -process {
get-ftp -server mylinuxserver -user myuser -password mypassword -ssh -force -path "/misc/path/" -remotefile ($_.Filename) -localfile ("C:\misc\path\" + $_.Filename) 
send-ftp -server mylinuxserver -user myuser -password mypassword -ssh -force -path "/misc/path/" -remotefile ($_.Filename) -rename ("/misc/path/Processed" + $_.Filename)
Write-Output ("Processing file: " + $_.Filename)
 
$Username = "mptcmanage@student.morainepark.edu"
$Password = ConvertTo-SecureString 'l0pht2600' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential $Username, $Password
c:\misc\path\CSV_Parser_wErrorLogging.PS1 -UsersFile ("C:\misc\path\" + $_.Filename) -RemoteURL https://ps.exchangelabs.com/powershell -LiveCredential $cred -LogDirectory "C:\misc\path\logs\"
 
mv ("C:\misc\path\" + $_.Filename) (C:\misc\path\Processed) -force
Write-Output ("Moved file: " + $_.Filename)
}

Open in new window

0
Comment
Question by:jloomans
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 18

Expert Comment

by:BSonPosh
ID: 22867299
Does it just not move? Does it error? Have you tried adding the -verbose flag to move-item?
0
 

Author Comment

by:jloomans
ID: 22867738
I have added -verbose behind the command.  It does not move.  There is no output in the Powershell window to indicate the command was carried out.
0
 
LVL 18

Accepted Solution

by:
BSonPosh earned 125 total points
ID: 22867764
That is odd... try this

move-item "C:\misc\path\$($_.Filename)" "C:\misc\path\Processed" -force -verb
0
 

Author Comment

by:jloomans
ID: 22868143
I found a line in the script that is called from this script that broke the loop.  This line was commented and now this script works well include the move-item command.

Personally, I prefer the way you constructed this line of code better than my own.  Thanks.
0

Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
Part One of the two-part Q&A series with MalwareTech.
Six Sigma Control Plans
Progress

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question