Czy istnieje odpowiednia składnia systemu Windows do uruchamiania polecenia w innym poleceniu w pliku skryptu nietoperza?Alternatywa dla batów Windows dla komendy Bash inline
W systemie Linux możesz po prostu użyć $(...) lub ``.
Czy istnieje odpowiednia składnia systemu Windows do uruchamiania polecenia w innym poleceniu w pliku skryptu nietoperza?Alternatywa dla batów Windows dla komendy Bash inline
W systemie Linux możesz po prostu użyć $(...) lub ``.
Tak, przynajmniej dla prostych rzeczy:
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%w in ('echo xyzzy') do set var=%%w
echo Output is %var%
endlocal
Wyjście z tego skryptu jest:
Output is xyzzy
z xyzzy
pochodzące z komendy echo
.
Uruchamianie for /?
z okna poleceń powinno dać ci pełniejszą listę opcji.
Myślę, że jest to obsługiwane przez konstrukcje typu "for-in", a nie wewnętrznie za pomocą silnika wiersza poleceń systemu Windows. W moim przypadku nie działa: http://stackoverflow.com/questions/11828801/imagmagick-how-to-add-a-gradient-splice-to-an-image-using-one-convert-command/11864792 # 11864792 – Mohsen
@Moshen, 'for' to jedyny sposób, w jaki myślę, że możesz to zrobić. Nawet 'bash' nie uruchamia kodu z' $() ', to po prostu zastępuje standardowe wyjście z innego procesu. Nie różni się to od przechowywania w zmiennej środowiskowej, a następnie używania tej zmiennej, jak w mojej odpowiedzi. – paxdiablo
@Mohsen - FOR jest wewnętrznym poleceniem, więc zdecydowanie jest obsługiwane przez silnik linii poleceń. – dbenham
Pliki Windows .bat są historycznym powrotem, dlaczego nie zainstalować Perla? – cdarke
Pliki wsadowe nadal mają miejsce - na przykład, jeśli trzeba je uruchomić jako część skryptu instalacyjnego. Nie można zakładać, że Perl zostanie zainstalowany w systemie użytkownika. –