2013-04-14 18 views
7

Yeni notlar oluşturmak, metni ve başlıkları bağımsız değişken olarak girmek için Evernote's ENScript.exe kullanmak istiyorum. Sorun, ENScript'in sadece metnin bir dosya üzerinden veya standart giriş yoluyla girilmesine izin vermesidir.Windows komut satırında standart girdi girişi

Geçerli geçici çözüm için, bir dosyaya argümanı yazmak için bir .bat dosyası kullanıyorum, ardından dosyayı okumak için dosyayı işaret eden /s argümanı ile ENScript'i arayın, ancak bu varsayılan başlığı geçici dosyanın dosya adına zorlar (istemediğim bir davranış).

Bu yüzden sorum şu: Windows komut satırında standart girdiyi "sahte" bir yol var mı? Böylece not metnini oluşturmak için bir argüman (başka bir programdan geçirilmiş) kullanabilirim? Standart girişli

ENScript.exe createNote /i %1 

aşağıdaki gibi bir şey senaryonun başlangıcı olacaktır.

cevap

8

Bir komutun çıktısını yakalayan ve onu bir sonraki girdiye gönderen bir boru işlemi arıyorsunuz. Bu çoğu işletim sisteminde standart bir özelliktir.

, Windows CMD için boru sembolüdür |

Senaryonuz kadar basit olabilir: senaryonuz MakeNote.bat çağrılırsa

@echo %~2|@ENScript.exe createNote /i %1 

, sen

MakeNote "your title" "This is the text of your note" 
gibi çağırır
0

bir yeniden yönlendirme kullanılarak "sahte" standart girdi olabilir: < giriş yeniden yönlendirme anlamına

command args... < filename args... 

("yerine terminalin < sonra dosya standart giriş okumak").

(giriş yönlendirme yararsız hale terminalden düz okuyabilir o eski, Windows veya DOS programları unutmayın; bu umutla Evernote gibi yakın olarak bir şeye geçerli olmayacaktır.) Sizin Örneğin

:

ENScript.exe < "%1" 

Yeniden yönlendirmeden önce veya sonra daha fazla argüman ekleyebilirsiniz. Örneğin, komut dosyanız script filename title olarak adlandırılacaksa, ENScript /i "%2" < "%1"'u çağırmak isteyeceksiniz.

+0

İkinci "args ..." mantıklı değil. Veri kaynağı argümanlı veya argümansız bir komut ise, '' 'yerine' '' kullanın. –

+0

Bunu denemeye çalışırken "Sistem belirtilen dosyayı bulamıyor" hatasını alırsam, bunun yalnızca doğrudan doğruya terminalden okunduğunda çalışacağı anlamına mı gelir? Sadece denedim 'ENScript.exe createNote <"Test 123' ve hata var. – Ryan

+0

@BenVoigt Dosya adı argümanları almak değil, yeniden yönlendirme komut satırında nerede olduğunu göstermek için çalışıyordum. 'Test 123' adlı bir dosyanız var mı? Not metni okuyacaktır. – michaelb958

İlgili konular