Bạn có đang cố chuyển các đối số dòng lệnh cho chương trình AS khi bạn khởi chạy không? Tôi đang làm việc trên một cái gì đó ngay bây giờ mà không chính xác điều này, và nó đã được rất nhiều đơn giản hơn tôi nghĩ. Nếu tôi đi vào dòng lệnh và nhập
C:\folder\app.exe/xC:\folder\file.txt
thì ứng dụng của tôi khởi chạy và tạo tệp trong thư mục được chỉ định với tên được chỉ định.
tôi muốn thực hiện điều này thông qua một kịch bản Powershell trên một máy từ xa, và đã tìm ra rằng tất cả những gì cần thiết để làm được đưa
$s = New-PSSession -computername NAME -credential LOGIN
Invoke-Command -session $s -scriptblock {C:\folder\app.exe /xC:\folder\file.txt}
Remove-PSSession $s
(Tôi có một bó lệnh tương tự hơn trong phiên giao dịch, đây là chỉ số tối thiểu cần thiết để chạy) chú ý khoảng cách giữa thực thi và đối số dòng lệnh. Nó làm việc cho tôi, nhưng tôi không chắc chắn chính xác cách thức hoạt động của ứng dụng của bạn, hoặc nếu đó là cách bạn truyền đối số cho nó.
* Tôi cũng có thể có ứng dụng của tôi đẩy các tập tin trở lại máy tính cục bộ của riêng tôi bằng cách thay đổi kịch bản-block để
C:\folder\app.exe /x"\\LocalPC\DATA (C)\localfolder\localfile.txt"
Bạn cần có dấu ngoặc kép nếu tập tin đường dẫn của bạn có một không gian trong đó.
EDIT: trên thực tế, này lớn lên một số vấn đề ngớ ngẩn với Powershell tung ra ứng dụng như một dịch vụ hoặc một cái gì đó, vì vậy tôi đã làm một số tìm kiếm, và đã tìm ra rằng bạn có thể gọi CMD để thực hiện các lệnh cho bạn trên máy tính từ xa. Bằng cách này, lệnh được thực hiện CHÍNH XÁC như thể bạn vừa gõ nó vào một cửa sổ CMD trên máy từ xa. Đặt lệnh trong scriptblock vào dấu ngoặc kép, và sau đó đặt một cmd.exe/C trước khi nó. như thế này:
cmd.exe /C "C:\folder\app.exe/xC:\folder\file.txt"
giải pháp này đã giải quyết được tất cả các sự cố tôi gặp phải gần đây.
CHỈNH SỬA CHỈNH SỬA: Có nhiều sự cố hơn và đã tìm ra cách tốt hơn để thực hiện.
start-process -filepath C:\folder\app.exe -argumentlist "/xC:\folder\file.txt"
và điều này không treo cửa sổ đầu cuối của bạn chờ quá trình từ xa kết thúc. Chỉ cần chắc chắn rằng bạn có một cách để chấm dứt quá trình nếu nó không làm điều đó trên riêng của nó. (của tôi không, yêu cầu mã hóa của một đối số khác)
Cảm ơn phản hồi nhanh. Vì lý do nào đó, khi tôi thử nó theo cách đó, tôi làm cho nó in ra lệnh mở rộng sẽ hoạt động nếu tôi chạy nó bằng tay, nhưng nó không thực sự chạy nó. Tôi đã phải loại bỏ "&" vì nó nói nó là một ký tự dành riêng để sử dụng trong tương lai. – gregs
@gregs Tôi phải bật tính năng truy cập từ xa trên máy của mình để kiểm tra. Tôi đã thay đổi lệnh thành một kiểm tra ping đơn giản gửi một đối số của localhost. Sự thành công ở trên đối với tôi. –
Tôi có thể đã tìm ra cách nắm giữ, nhưng không phải là giải pháp. Dòng này hoạt động nếu tôi sử dụng ping.exe và "localhost" làm arg, nhưng tôi phải đặt dấu ngoặc kép quanh đường dẫn thực thi của mình vì đường dẫn có dấu cách. Khi tôi làm điều đó, nó chỉ đơn giản là lặp lại chuỗi của tôi trong báo giá lại cho tôi, nhưng tôi không nghĩ rằng nó chạy. – gregs