2013-04-14 12 views
7

Chcę użyć Evernote's ENScript.exe do tworzenia nowych notatek, wpisując tekst i tytuł jako argumenty. Problem polega na tym, że ENScript pozwala tylko na wprowadzanie tekstu poprzez plik lub standardowe wejście.Udawanie standardowego wejścia w wierszu poleceń systemu Windows:

Do mojego bieżącego obejścia używam pliku .bat do zapisania argumentu do pliku, następnie wywołania ENScript z argumentem /s wskazującym na plik do odczytu, ale wymusza to domyślny tytuł pliku pliku tymczasowego (zachowanie, którego nie chcę).

Moje pytanie brzmi: czy istnieje sposób na "podrabianie" standardowego wejścia w wierszu poleceń systemu Windows, aby można było użyć argumentu (przekazanego z innego programu) do wygenerowania tekstu notatki? Początek skryptu byłby podobny do początkowego skryptu ze standardowym wejściem następującym po tym, jak:

ENScript.exe createNote /i %1 

Odpowiedz

8

Poszukujesz operacji potoku, która przechwytuje dane wyjściowe jednego polecenia i wysyła je jako dane wejściowe do następnego. Jest to standardowa funkcja w większości systemów operacyjnych.

Symbol rur dla Windows CMD jest |

Twój skrypt może być tak proste, jak:

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

Jeśli skrypt nazywa MakeNote.bat, to nazwałbym go jak

MakeNote "your title" "This is the text of your note" 
0

Można „fake” standardowe wejście za pomocą przekierowania:

command args... < filename args... 

gdzie < oznacza przekierowanie sygnału wejściowego („czytać standardowe wejście z nazwy pliku po < zamiast terminala”).

(zauważ, że stare programy Windows lub DOS może odczytać bezpośrednio z terminala, dzięki czemu przekierowania wejścia bezużyteczny, to mam nadzieję, że nie będzie stosować się do czegoś tak świeża jak Evernote.)

Dla przykładu:

ENScript.exe < "%1" 

Możesz dodać więcej argumentów przed lub po przekierowaniu. Na przykład, jeśli Twój skrypt zostanie nazwany jako script filename title, będziesz chciał wywołać ENScript /i "%2" < "%1".

+0

Drugi "argument ..." nie ma sensu. Jeśli źródłem danych jest polecenie z lub bez argumentów, użyj potoku '|' zamiast '<'. –

+0

Jeśli pojawi się błąd "System nie może znaleźć określonego pliku" podczas próby przetestowania tego, czy to oznacza, że ​​będzie działał tylko wtedy, gdy odczytuje go bezpośrednio z terminala? Właśnie wypróbowałem 'ENScript.exe createNote <" Testowanie 123' i dostałem błąd – Ryan

+0

@BenVoigt Nazwa pliku nie otrzymuje argumentów, próbowałem pokazać, że gdzie przekierowanie jest w linii poleceń nie jest ważne. @Ryan Do masz plik o nazwie "Testowanie 123"? To właśnie będzie czytać tekst notatki z. – michaelb958

Powiązane problemy