File Powershell-将文件复制到共享

File Powershell-将文件复制到共享,file,powershell,copying,File,Powershell,Copying,这是我的第一篇帖子,所以要温柔 我开始使用Powershell,觉得它非常直观,并且希望获得一些建议/示例,说明如何正确编写特定的脚本,而不是将文件从一个地方复制到另一个地方 Files structure: c:\backup\archive\ test_20130320_000711_backup.rar test1_20130320_000711_backup.rar test_20130320_001215_backup.rar test1_20130320_001215_backu

这是我的第一篇帖子,所以要温柔

我开始使用Powershell,觉得它非常直观,并且希望获得一些建议/示例,说明如何正确编写特定的脚本,而不是将文件从一个地方复制到另一个地方

Files structure:

c:\backup\archive\

test_20130320_000711_backup.rar
test1_20130320_000711_backup.rar
test_20130320_001215_backup.rar
test1_20130320_001215_backup.rar
test_20130321_000811_backup.rar
test1_20130321_000811_backup.rar
test_20130321_001015_backup.rar
test1_20130321_001015_backup.rar

Unpacking directory:

c:\unpack_file\[contents of each rar goes here, one at a time]

destination:

E:\backup\archive\[date of file above e.g. 20130320 created]\[unpacked rar file contents here]
我需要做的是按日期复制每个文件,然后逐个解包。然后将内容复制到目标文件夹,并删除解包文件夹中的内容。呸


我已经做了一些基本的脚本编写,但这是一个真正的挑战,所以任何指针或示例都将是惊人的

我不确定您为什么需要中间目录。这里有一些代码让你开始

$rarExe = "C:\Program Files (x86)\7-Zip\7z.exe"
$srcDir = "C:\backup\archive"
$dstDir = "E:\backup\archive"

$rarFiles = gci $srcDir

foreach ($file in $rarFiles){
    $arcDate = $file.basename.Split("_")[1]
    New-Item "$dstDir\$arcDate" -type directory

    Write-Output "EXECUTING: $($startinfo.FileName) $($startinfo.Arguments)"
    $startinfo = new-object System.Diagnostics.ProcessStartInfo
    $startinfo.FileName = $rarExe
    $startinfo.Arguments = "e $($file.fullname) -o$dstDir\$arcDate"
    $process = [System.Diagnostics.Process]::Start($startinfo)

}

为什么不将文件解压缩到最终目的地呢?解包拷贝删除会有什么好处?嘿,vonPryz,我正试图为自己设置学习真实word场景的限制。我希望一次解包一个的原因是为了最小化c:上的磁盘内存。通过这种方式,它会解压每个文件,将内容复制到不同的驱动器,然后删除解压后的文件并在下一个文件上重新启动。这样,您就不会在C:上有GIG的数据了。谢谢!如果我想在{newitem“$dstDir\$arcDate”-type directory}之后创建另一个目录,我也会这样做,对吗?{New Item“$dstDir\$arcDate\archive”-键入directory}并将文件放置在此新目录中