2

基本的に、入力されたネットワーク パス (例: "\SERVER\SHARE\") から、特定の Excel ファイルをデスクトップにコピーして自動的に実行したいと考えています。問題は、デスクトップに ZZZ という文字を含む他の Excel ファイルがあることです。何か案は?ありがとうございました!

$title = "Copy ZZZ to Desktop"
$zzzpath = read-host Paste ZZZ path here
copy-item "$zzzpath\*ZZZ*.xlsx" "C:\Users\%username%\Desktop\"
Invoke-Item C:\Users\%username%\Desktop\*ZZZ*.xlsx
4

2 に答える 2

2

Copy-Item の出力を Invoke-Item にパイプして、前者がその出力を後者に (-PassThru 経由で) 渡すように強制できます。

$title = "Copy ZZZ to Desktop"
$zzzpath = Read-Host Paste ZZZ path here

Copy-Item "$zzzpath\*ZZZ*.xlsx" "C:\Users\%username%\Desktop\" -PassThru |
    Invoke-Item
于 2013-04-19T06:15:42.910 に答える
0

私は次のようなことをしたと思います:

$path = read-host "Enter/paste path"
$localdesktop = $env:userprofile, "\desktop" -join ("")

$xlsdoc = Get-ChildItem -path $path | where {$_.Name -match ".xlsx$" -and $_.Name -match "ZZZ"}

Copy-Item -path ($xlsdoc.FullName) -destination $localdesktop

$copiedxls = Get-ChildItem -path $localdesktop | where {$_.Name -match ".xlsx$" -and $_.Length -match $xlsdoc.Length}

Sleep -s 5

start $copiedxls.FullName

start $copiedxls

編集:「.length」プロパティを使用してファイルサイズを比較します。これが、開始する「zzz.xlsx」を決定する方法です。

アーレンド。

于 2013-04-19T22:54:35.310 に答える