Làm thế nào để sử dụng với start-process với biến cho filepath? (Windows10 / Quyền hạn)


1

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


1
Điều gì về:start-process "$($env:windows)\security\$latest.name"
LotPings

1
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. start-process "$($env:windows)\security\$($latest.name)Thay vào đó, hãy thử
Ruscal

2
@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 $latest.namenhư $($latest.name)để có được kết quả mong muốn. >start-process "$($env:windows)\security\$($latest.name)"
Ruscal

@Ruscal Yepp, bỏ qua cái đó.
LotPings
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.