【问题标题】:Powershell - Copying Files to a sharePowershell - 将文件复制到共享
【发布时间】:2013-04-01 07:26:05
【问题描述】:

这是我的第一篇文章,所以要温柔。

我开始使用 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]

我需要做的是按日期复制每个文件并解压每个文件,一次一个。然后将内容复制到目标文件夹并删除解压缩文件夹中的内容。呸!

我已经编写了一些基本的脚本,但这是一个真正的挑战,所以任何指针或示例都会很棒!

【问题讨论】:

  • 为什么不直接将文件解压缩到它们的最终目的地? unpack-copy-delete 有什么好处?
  • 嘿 vonPryz,我正在尝试为自己设置学习真实单词场景的限制。我想一次一个地解压它们的原因是为了尽量减少 c: 上的磁盘内存。这样,它会解压缩每个文件,将内容复制到不同的驱动器,然后删除解压缩的文件并在下一个文件上重新开始。这样您就不会在 C: 上拥有大量数据。

标签: file powershell copying


【解决方案1】:

我不确定您为什么需要中间目录。下面是一些帮助您入门的代码。

$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)

}

【讨论】:

  • 谢谢!如果我想在其中创建另一个目录 {New-Item "$dstDir\$arcDate" -type directory} 我也会这样做吗? {New-Item "$dstDir\$arcDate\archive" -type directory} 并将文件放在这个新目录中
猜你喜欢
  • 1970-01-01
  • 2021-02-22
  • 2022-10-14
  • 2020-01-02
  • 2021-03-09
  • 1970-01-01
  • 2012-05-01
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多