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

编辑:我使用“.lenght”属性来比较文件大小。这就是我确定要开始的“zzz.xlsx”的方式。

厄伦德。

于 2013-04-19T22:54:35.310 回答