-1

私はすでにこの問題に何時間も費やしましたが、実用的な解決策を見つけることに成功しませんでした。

これが私の問題の説明です:

私は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 
4

1 に答える 1

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
于 2012-10-11T07:07:40.370 に答える