2010-04-03 11 views
8

PytanieJakie są powody używania programów wsadowych DOS w systemie Windows?

Co byłoby dobre (idealnie, techniczne) powód, aby kiedykolwiek zaprogramować pewne nietrywialne zadanie w języku dos wsadowego na nowoczesnym systemie Windows jako przeciwieństwie do pobierania albo PowerShell lub ActiveState Perl?

Aby być bardziej szczegółowe, robię dwa następujące założenia do czasu trwania tego pytania:

  • ktoś wystarczająco techniczny móc napisać skrypt średnich złożoność partia jest wystarczająco techniczny zainstalować jeden z tłumacze skryptowi.

  • Żadne z tych dwóch nie posiada wystarczającej liczby krzywej uczenia się dla podstawowych zadań zastępowania partii, a wspomniana krzywa przeważa ból związany z wykonywaniem nietypowych zadań w partii.

Uwagi

  • "Potrzebny jest program wsadowy do autoexec.bat" nie jest ważny powód. Twój plik autoexec.bat może składać się z prostego wywoływania skryptu niebędącego pakietem wsadowym.

  • Jeśli nie zgadzasz się z żadnym z moich dwóch założeń powyżej, jest to w porządku i może się mylić. Ale moje pytanie brzmi konkretnie "zakładając, że te dwa założenia są prawidłowe, jaki byłby powód, aby nadal trzymać się partii?" Jeśli ułatwia to zawieszenie niewiary (w przypadku, gdy nie zgadzasz się ze mną), dodaj trzecie założenie, że pytanie jest ograniczone do osób, które już posiadają przynajmniej odrobinę doświadczenia PowerShell lub Perl.

    Ponowna iteracja - nie jest to subiektywne pytanie o to, jak łatwo można nauczyć się PSh lub ASPerl w porównaniu do zaawansowanego kodowania wsadowego. To jest osobne pytanie, które jest zbyt subiektywne, aby można było sobie z tym poradzić.

Tło:

kiedyś zrobić jakiś dość skomplikowanego programowania wsadowego w Dawnych dni, i pamiętają partię jako jeden z najgorszych języków programowania możliwe zetknąłem.

Pomysł na to pytanie pojawił się po tym, jak zobaczyłem kilka pytań na temat SO i próbowałem wyłudzić odpowiedź jednego z nich z czystej ciekawości i po chwili poddać się z bólu, wykrzykując mentalnie "dlaczego ktoś miałby pójść przez ten ból zamiast robić to w 1 linii Perla? " :)

Moja własna odpowiedź wiarygodna

Przypuszczam, że może być an an prawdopodobne systemu DOS-kompatybilne, który ma DOS tłumacza, ale nie ma zgodnego PowerShell lub Perl ... Nie jestem świadom jednego ale nie do końca niemożliwe.

+1

Należy zauważyć, że DOS (command.com) i Windows (cmd.exe) powłoki linii poleceń to dwa * bardzo * różne światy. Ze wszystkich praktycznych względów ci dwaj mają tylko trochę składni, ale nic poza tym. 'autoexec.bat' również nie istnieje już od jakiegoś czasu. Chyba, że ​​nadal działa DOS lub Windows 9x. – Joey

+0

@Johannes - Hmmm ... Nadal widzę autoexec.bat we wszystkich moich instalacjach XP, choć nigdy nie musiałem niczego tam umieszczać, więc nie wiem, czy to działa :) – DVK

+0

Jest tam dla starożytnych aplikacji, które oczekują, że będzie tam . To samo z config.sys. Zwykle są puste. Windows robi trochę magii ze zmiennymi środowiskowymi ustawionymi w 'autoexec.bat' i ustawia je w Windows (ustawienia systemu DOS regularnie ustawiają' PATH' lub inne zmienne, aby mogły działać poprawnie). Poza tym te pliki już nie są potrzebne i to tylko odrobina kompatybilności wstecznej. – Joey

Odpowiedz

13

Zasadniczo konieczne jest, aby skrypt działał na maszynie, która nie ma innego tłumacza i na której nie można zainstalować interpretera. Serwery produkcyjne w wielu firmach to dobry przykład - chcesz, aby dysponowały one jak najmniejszą liczbą wektorów eksploatacyjnych, co oznacza brak języków skryptowych, które nie są wymagane dla funkcjonalności aplikacji.

Masz rację, kiedy mówisz, że język partii jest okropnym językiem - jest powód, dla którego zatopili oni czas i pieniądze w budowaniu PowerShell - ale jest to również jedyny uniwersalny język, na którym możesz polegać w niezliczonych wersjach systemu Windows.

+2

Hmm ... zgadnij Nie jestem tak przyzwyczajony, by słyszeć "produkcje" i "Windows" w tym samym sensie, ponieważ całe moje życie istniało w świecie Unix/Linux, jeśli chodzi o produkcję, nawet o tym nie myślałem. +1 – DVK

+4

Co szokujące, w rzeczywistości firmy używają systemu Windows jako platformy serwerowej. Czasami to nawet działa. –

+0

Heck, nasza firma tak. Po prostu miałem dobrą (jak przypuszczam) fortunę, by nigdy nie dotknąć tej strony Mocy w pracy. Najbliżej przybyłem jako administrator NETWARE z powrotem w college'u :) – DVK

9

Ponieważ pracuję w banku, w którym domyślną przeglądarką jest IE6 w systemie Windows XP i nie mam pojęcia, czy będę mógł zainstalować PowerShell na czyimś komputerze, a ja mam plik wsadowy, którego mogą szybko i łatwo użyć :

sqlcmd with some pre-import SQL 
bcp 
sqlcmd with some post-import SQL 

z całej partii, która chciałaby być runAs/netonly ponieważ stacja robocza nie uczestniczy w domenie że SQL Server to/trustów.

Nie że ja narzekam ani nic ...

I chciałbym powiedzieć, że są nietrywialne, ponieważ czasami biorą parametry i wymagają trochę dość szaloną ucieczkę cytowania.

5

Mam umowę w dużej firmie użyteczności publicznej, która absolutnie nie zezwala na niezatwierdzonych programów na swoich komputerach. Tego można się spodziewać po komputerach podłączonych do najbardziej wewnętrznych sieci, które łączą się między komputerami sterującymi i urządzeniami, ale zakaz dotyczy również sieci ogólnego przeznaczenia i administracyjnej.

Zatwierdzonym systemem operacyjnym jest Windows XP SP3 z IE6. Aktualizacja jest niedozwolona, ​​dopóki wsparcie techniczne jej nie pobłogosławi. Co, jak się wydaje, może jeszcze za kilka lat.

Dlatego pliki wsadowe są jedynym dostępnym ogólnym narzędziem skryptowym. Niektóre maszyny programistyczne mają dostęp do kompilatorów C++, ale powstałe programy nie są dozwolone w dystrybucji wewnętrznej do zakończenia (prawdopodobnie wieloletniego) procesu sprawdzania poprawności.

+3

Umożliwiają one więc niepotwierdzone skrypty wsadowe, ale nie mają unieważnionego kodu C++ z identyczną funkcjonalnością? Smutne, ale nie zaskakujące :) – DVK

+1

Shhhh! Nie zdziwiłbym się, gdyby dodali zakaz * niezatwierdzonych plików wsadowych * - o czym oni się dowiedzieli. – wallyk

+0

sprawiłeś, że brzmi to jak ZŁE? Następnym razem, gdy twoja energia elektryczna wyłączy się na jeden dzień, bo jakiś Yahoo uruchomił nieprzetestowany, nieudolny kod na sieci firmy energetycznej, jestem pewien, że będziesz chciał gorzej niż wymuszać na nich przegląd kodu od tej pory ... – DVK

2

Można również użyć vbscript lub jscript zamiast perla i nie trzeba się martwić o instalowanie dodatkowego oprogramowania.

+0

Zrobić to za pomocą JScript. – Axeman

+3

Host skryptów systemu Windows może być jednak wyłączony przy użyciu zasad grupy. – Joey

0

różne powody

  1. Jego polityka firmy, będzie to dla bezpieczeństwa lub innych przyczyn nielogicznych podanych przez kierownictwo, które ściśle stosowanie DOS.
  2. Musisz już wcześniej obsługiwać niektóre dotychczasowe skrypty DOS .
  3. Ty lub administratorzy w firmie znasz tylko DOS i nie masz zdolności do nauki innych języków.
  4. Jesteś kodująca część większego programu DOS już pisemnej
  5. robienia rzeczy z „trudniejszy” sposób, że będziesz wyglądać cool.
  6. Masz dużo czasu na rękach opracowanie obejścia niektórych rzeczy, które są trudne do zrobienia łatwo DOS
+3

Mam poważne wątpliwości, że DOS to obecnie problem. Już od ponad dekady minęły nasze czasy i już nie istnieje w 64-bitowym systemie Windows. – Joey

Powiązane problemy