file - Powershell - 将文件复制到共享

标签 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_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)

}

关于file - Powershell - 将文件复制到共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909168/

相关文章:

c# - 巨大的 XML 文件的问题

file - 将文件名中具有特定字符串的目录中的所有文件复制到 Bash 中的不同目录

c++ - QT - 如何将文件名编码设置为西里尔文

javascript - 在 Nodejs 中解析大型 JSON 文件

macos - 如何使用 SSH 和 MAC OS X 终端在计算机之间复制文件

c++ - 在 Objective C++ 中将字符串放入二维矩阵

xml - 无法替换PowerShell中的字符串

powershell - 电源外壳。创建一个类文件来保存自定义对象?

powershell - 在Powershell中获取当前用户的凭据对象而不提示

javascript - 在 js 中复制对象(需要文档中的引用传递指导)