Chúng tôi đang cố gắng viết một kịch bản PowerShell gọi một ứng dụng bên ngoài - một ứng dụng Redis (redis-cli.exe
) - và sau đó gửi nhiều lệnh đến đó .exe. Chúng tôi không có vấn đề gửi lệnh riêng rẽ như dưới đây:Gửi nhiều lệnh tới chương trình ngoài
& redis-cli -h localhost -p 6379 SMEMBERS someKey
Vấn đề là điều này sẽ bắt đầu một Redis khách hàng, phát hành một lệnh duy nhất, đóng client, và sau đó trở về điều khiển PowerShell. Chúng tôi cần phát hành nhiều lệnh trong một giao dịch. Ví dụ, đây là các lệnh mà chúng tôi muốn gửi đến khách hàng:
MULTI
DEL someKey
DEL someSet
EXEC
Client Redis không hỗ trợ gửi một chuỗi LUA script như một lệnh, nhưng điều này không may không hỗ trợ MULTI/lệnh giao dịch EXEC . Nói cách khác, chúng tôi cần có khả năng phát hành nhiều lệnh như tôi đã liệt kê ở trên.
Tôi không biết về PowerShell, nhưng trên tôi (Linux) hộp redis-cli mất nhiều lệnh trên đầu vào tiêu chuẩn: 'echo - e "MULTI \ nEXEC" | redis-cli' hiển thị 'OK'. –
Trong đường ống PowerShell, một chuỗi các chuỗi phải làm tương tự: ''MULTI', 'DEL someKey', ... | redis-cli ... ', cũng cung cấp phiên bản Windows đọc từ STDIN. –
Tuyệt vời, có vẻ như nó hoạt động! :) Nếu bạn muốn đăng bài này như là một câu trả lời tôi sẽ upvote và chấp nhận. Ví dụ. : echo "MULTI", "EXEC" | & redis-cli -h localhost -p 6379 – jakejgordon