复制时PowerShell脚本中的错误

时间:2012-10-11 04:54:09

标签: powershell

我已经花了好几个小时来解决这个问题,但是我找不到合适的解决方案。

这是我的问题描述:

我是powershell的新手,不知怎的,我读书并制作了一个必需的代码,但它显示的错误让我无法解决。代码的作用是从文件夹中提取图像,并根据最接近的可用比率(0.67,1.33,1.2)将每个图像的副本放置在文件夹(0.67,1.33,1.2)中的图像宽高比与其他位置之间。

我的代码看起来或多或少像这样:

[System.Reflection.Assembly]::LoadFile( "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll")  



#index of minimum value
$p = [array]::IndexOf($ratioarray, $minimum)

if($p -eq 0){
$dst_dir =  $des_dir+"powershell\0.4"
if (!(Test-Path $dst_dir)) {
 # create it
 [void](new-item $dst_dir -itemType directory)
 }
Copy-Item $src_dir$image $dst_dir
}

if($p -eq 1){
$dst_dir =  $des_dir+"powershell\0.5"
if (!(Test-Path $dst_dir)) {
 # create it
 [void](new-item $dst_dir -itemType directory)
 }
Copy-Item $src_dir$image $dst_dir
}

if($p -eq 2){
$dst_dir =  $des_dir+"powershell\0.67"
if (!(Test-Path $dst_dir)) {
 # create it
 [void](new-item $dst_dir -itemType directory)
 }
Copy-Item $src_dir$image $dst_dir
}

"$name|$width|$height|$ratioroundoff|$dst_dir" >> $datafile  

     $imageFile.Dispose() 
 }

它给出错误:

Copy-Item : The given path's format is not supported.
At C:\Users\busy\desktop\copyflow.ps1:71 char:10
+ Copy-Item <<<<  $src_dir$image $dst_dir
+ CategoryInfo : InvalidOperation: (C:\Users\busy\D...ics2\jack.jpg:String) [Copy-Item], NotSupportedException
+ FullyQualifiedErrorId : ItemExistsNotSupportedError,Microsoft.PowerShell.Commands.CopyItemCommand 

1 个答案:

答案 0 :(得分:1)

问题似乎与文件名有关。 $images = Get-ChildItem -Recurse $src_dir -Include *.jpg将使用已存在绝对文件名的FileInfo个对象填充集合。不需要路径修改。

而不是

Copy-Item $src_dir$image $dst_dir

尝试类似

的内容
Copy-Item $image.FullName $dst_dir

如果仍然无效,请将输出打印到控制台并检查错误。像这样,

write-host $("Copy-Item {0} {1}" -f $image.FullName, $dst_dir)
Copy-Item -whatif $image.FullName $dst_dir