使用Powershell移动文件

时间:2017-09-08 12:18:45

标签: powershell

我在名为files.txt的文件中有一个文件列表。

我有一个文件夹FlacTest,其中包含列表中显示的混合文件和不存在的文件。

我想将列表中出现的文件从FlacTest文件夹中移出到第二个文件夹 - FlacRecovery。

这是我的代码:

$definition->addArgument($container->getDefinition(SERVICE_HERE));

当我运行脚本时,它没有错误但没有任何反应。代码有问题吗?

1 个答案:

答案 0 :(得分:1)

使用管道。解决这个问题的一种方法是:

  • 从文本文件(Get-Content
  • 中获取路径
  • 将它们转换为实际的文件对象(Get-Item
  • 过滤掉它们(Where-Object + Test-Path
  • 移动其余的(Move-Item

包装易读性(反引号在这里用于续行):

$destination_folder = 'C:\FlacTest'

Get-Content C:\files.txt `
| Get-Item `
| Where-Object { -not (Test-Path "$destination_folder\$_.Name") } `
| Move-Item -Destination $destination_folder

没有手动循环,只需一个管道。

对于丢弃的单行,这可以通过使用别名来减少:

cat C:\files.txt | gi | ? {-not (Test-Path "C:\FlacTest\$_.Name")} | mv C:\FlacTest