基本上从输入提供的网络路径(例如“\ _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
答案 0 :(得分: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
答案 1 :(得分: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
编辑:我使用'.lenght'属性来比较filesize。这就是我决定“zzz.xlsx”开始的方式。
Erlend。