Jak mogę pobrać dane wejściowe od użytkownika w pliku .bat?

4

Jestem za pomocą polecenia dir /AD /B "\\computerName\users\" >> user_export.log

Czy jest możliwe utworzenie pliku wsadowego, który prosi użytkownika o wpisanie nazwy komputera, a następnie, gdy użytkownik końcowy wprowadzi nazwę komputera, aby wprowadzić go w nazwie UNC wymienionej powyżej, więcdir /AD /B "\\**INPUT VALUE ENTERED HERE**\users\"

Mam nadzieję, że to ma sens.

Kevin Dodd
źródło
1
Powiązane: stackoverflow.com/q/9435607/516290
Diogo,

Odpowiedzi:

6

Najlepiej będzie odizolować dane wejściowe użytkownika od użycia danych wejściowych w nazwie UNC. Więc mógłbym pomóc w wprowadzaniu danych przez użytkownika:

Wystarczy użyć polecenia set, aby uzyskać odpowiedź użytkownika:

set /P response=INPUT VALUE PLEASE
dir /A/D /B "\\%response%\users\"

Możesz pisać bardziej wyrafinowane podpowiedzi, takie jak

set /P response="INPUT VALUE HERE > "

ale podwójne tiki nie są konieczne dla polecenia set. Są zobowiązani do zignorowania znaku specjalnego >. Ponadto poprawiona zostanie widoczność znaków spacji w monicie.

harfiarka
źródło
Ze względu na użycie znaku zachęty „>”, cudzysłowy konieczne, aby uniknąć błędu składniowego (prawdopodobnie dlatego, że wygląda to na przekierowanie wyjścia do programu powłoki).
martineau