Vui lòng xem xét mã bên dưới (bên trong tập lệnh .ps1)
$latest = Get-ChildItem -Path $env:windows\security -Filter "my-app-here*.*" | Sort-Object -Descending | Select-Object -First 1
$file=$env:windows+"\security\"+$latest.name
start-process $file
cái này hoạt động tốt
Nếu tôi cố gắng đơn giản hóa mã thành:
$latest = Get-ChildItem -Path $env:windows\security -Filter "my-app-here*.*" | Sort-Object -Descending | Select-Object -First 1
start-process $env:windows+"\security\"+$latest.name
Tôi nhận được thông báo lỗi:
start-process : This command cannot be run due to the error: The system cannot find the file specified.
Bất cứ ý tưởng những gì tôi có thể làm sai? Cảm ơn rất nhiều
Trông giống như một vấn đề về chuỗi và đối tượng (trong ví dụ $ 1 là một chuỗi, trong lần thứ 2, bạn đang đập các đối tượng lại với nhau theo cách có một toString () đẹp nhưng không phải là một chuỗi dễ dàng.
—
Ruscal
start-process "$($env:windows)\security\$($latest.name)
Thay vào đó, hãy thử
@LotPings Chỉ cần nhận thấy đánh tôi đến những cú đấm, nhưng bạn cần phải dấu ngoặc đơn kèm theo
—
Ruscal
$latest.name
như $($latest.name)
để có được kết quả mong muốn. >start-process "$($env:windows)\security\$($latest.name)"
@Ruscal Yepp, bỏ qua cái đó.
—
LotPings
start-process "$($env:windows)\security\$latest.name"