Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In Powershell, how can I move all files in a folder to a new child directory?

I've tried mv c:\foo\* c:\foo\bar\, but all my files disappear and I get an extension-less 'bar' file. I've also tried making the directory first and then doing the move, but I get a The process cannot access the file because it is being used by another process error, presumably because it is then trying to move the 'bar' folder to itself.

share|improve this question
    
Yes. It is trying to move C:\foo\bar into itself. The only workaround I can think of is temporarily moving \bar outside of \foo until the files are moved. Im not familiar with powershell, but If it supports wildcards like unix does, this should exclude directories: "mv c:\foo\*.* c:\foo\bar\" as long as all the files have an extension – Wolfizen Aug 17 '13 at 19:21
robocopy "c:\foo\ c:\foo\bar\"

The above works fine for just files in a folder.

A script/powershell example, please adjust args and options for your needs:

$args = "/COPYALL /B /SEC/"
$options = "/R:0 /W:0 /NFL /NDL"
$source = "c:\foo\"
$dest = "c:\foo\bar"

robocopy "$source $dest $args $options"
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .