2015-09-03 18 views
11

Harici bir uygulamayı (bir Redis istemcisi (redis-cli.exe) çağıran bir PowerShell komut dosyası yazmaya çalışıyoruz ve bu .exe'e birden çok komut gönderiyoruz.Dış Programa Birden Çok Komut Gönder

& redis-cli -h localhost -p 6379 SMEMBERS someKey 

sorun bu, bir Redis istemcisi, sorunu tek komut başlatmak müşteri kapatın ve sonra PowerShell kontrolünü dönecektir şudur: Biz hiçbir sorunun aşağıda gibi bireysel komutları göndererek var. Bir işlemde birden çok komut vermemiz gerekiyor. Örneğin, burada müşteriye göndermek istediğiniz komutları şunlardır:

MULTI 
DEL someKey 
DEL someSet 
EXEC 

Redis istemci desteği bir komut olarak bir LUA komut dizesini göndererek, ancak bu maalesef ÇOK/EXEC işlem komutlarını desteklemez yapar . Diğer bir deyişle, yukarıda listelediğim gibi birden çok komut verebilmemiz gerekir. redis-cli yana

+1

Ben PowerShell bilmem ama benim (Linux) kutu Redis-cli standart girişinde birden çok komut alır yoktur: 'yankı - e "ÇOKLU \ NEXEC" | redis-cli '' OK' gösterir. –

+1

PowerShell boru sisteminde bir dizi dizi aynı şeyi yapmalıdır: '' MULTI ',' DEL someKey ', ... | redis-cli ... ', Windows sürümünün STDIN'den okunmasını sağladı. –

+0

Başar, işe yarıyor! :) Eğer bunu bir cevap olarak göndermek istiyorsanız kabul edip kabul edeceğim. Örneğin. : echo "MULTI", "EXEC" | & redis-cli -h localhost -p 6379 – jakejgordon

cevap

7

böyle komut dizeleri ile onun bir dizi yem olabilir STDIN'den giriş okumaya görüntülenir:

( Write-Output için takma ad) echo kullanma
'MULTI', 'EXEC' | & redis-cli -h localhost -p 6379 

boru hattına diziyi beslenmesi için gerekli değildir.

Ayrıca ilk değişken komut dizisini depolayabilir:

$cmds = 'MULTI', 'EXEC' 
$cmds | & redis-cli -h localhost -p 6379