2011-10-24 16 views
58

Jak odczytać dane wejściowe z konsoli w pliku wsadowym? Próbuję osiągnąć funkcjonalność scanf w C. Jak mogę zrobić to samo w pliku wsadowym?Jak odczytać dane wejściowe z konsoli w pliku wsadowym?

+0

możliwy duplikat [problemu z wprowadzeniem przez użytkownika w pliku wsadowym] (http://stackoverflow.com/questions/916413/problem-with-user-input-in-my-batch-file) –

+0

@ Raymond: Nie , pytanie polega na odczytaniu wielu znaków jako ciągu znaków z klawiatury na zmienną. – Nohsib

+0

Komenda 'set/p' odczytuje wszystko, co użytkownik wpisze, niezależnie od tego, czy jest to jedna litera, czy wielokrotność. –

Odpowiedz

96

Fragment kodu w połączonym proponowanym duplikacie odczytuje dane wprowadzone przez użytkownika.

ECHO A current build of Test Harness exists. 
set /p delBuild=Delete preexisting build [y/n]?: 

Użytkownik może wpisać dowolną liczbę liter, a następnie przejdzie do zmiennej delBuild.

+0

mam to !!! Dzięki – Nohsib

+22

Uwaga: możesz użyć wejścia użytkownika z '% delBuild%' – Jacob

+1

Musimy zauważyć, że 'echo! DelBuild!' Da ci bardziej niezawodny wynik przy wykonywaniu, gdy 'setlocal EnableDelayedExpansion' włączył – xacinay

8

Oprócz istniejącej odpowiedzi możliwe jest ustawić domyślną opcję w następujący sposób:

ECHO A current build of Test Harness exists. 
set delBuild=n 
set /p delBuild=Delete preexisting build [y/n] (default - n)?: 

To pozwala użytkownikom po prostu naciśnij klawisz „Enter”, jeśli chcą wprowadzić domyślne.

10

Jak wszyscy mówią, wystarczy użyć numeru set /p varname="prompt message". Jeśli jesteś po prostu szybko chce utrzymać otwarte wystąpienie cmd zamiast wyjściu natychmiast, po prostu wykonując następujące czynności wystarczy

set /p temp="Hit enter to continue" 

na końcu skryptu i będzie ona mieć otwarte okno.

+9

w tym celu, ktoś wymyślił Komenda 'pause'. Również jest to 'set/p', a nie' set \ p'. – Stephan

+4

"Jak wszyscy mówią", oznacza to, że odpowiedź już jest udzielona, ​​więc kolejna bez większej wiedzy jest niepotrzebna – jeb

+1

@jeb masz rację. moim problemem było to, że zawierały zmienne i echo, podczas gdy ja tego nie potrzebowałem. Zajęło mi minutę lub dwie, aby przeanalizować odpowiedzi, ponieważ nie mam doświadczenia w partii. Wierzę, że moja odpowiedź spełnia wymaganą minimalną odpowiedź dostosowaną do moich potrzeb. – TankorSmash

Powiązane problemy