8
votes

Quelles sont les raisons d'utiliser DOS Litch Programmes dans Windows?

question

Quelle serait une raison bonne (idéalement technique) de programmer une tâche non triviale dans la langue DOS Batch sur un système Windows moderne, contrairement au téléchargement de PowerShell ou d'activer Perl?

Pour être plus précis, je fais les deux hypothèses suivantes pour la durée de cette question:

  • Quiconque est suffisamment technique pour pouvoir écrire un script de lot de complexité moyenne est suffisamment technique pour installer l'un des interprètes de script.

  • Aucun de ces deux personnes suffisamment présents d'une courbe d'apprentissage pour les tâches de remplacement de lots de base indiquant ladite courbe dépasserait la douleur de faire toute tâche à distance non triviale dans le lot.

    notes

    • "Vous avez besoin d'un programme de lots pour autoexec.bat" n'est pas une raison valable. Votre autoexec.bat peut consister simplement à appeler un script non-lots.

    • Si vous êtes en désaccord avec l'une de mes 2 hypothèses ci-dessus, c'est bien, et je me trompe peut-être. Mais ma question est spécifiquement " supposant que ces 2 hypothèses sont correctes , quelle serait la raison de rester avec le lot?" S'il est plus facile de suspendre l'incrédulité (au cas où vous n'êtes pas d'accord avec moi), ajoutez-le dans une 3e hypothèse que la question est limitée aux personnes qui posent déjà au moins un peu de modicum de PowerShell ou d'une expérience Perl.

      Pour ré-itérer - cela n'est pas censé être une question subjective sur la facilité d'apprentissage de PSH ou d'Asperl par rapport à la prise de codage de lot avancé. C'est une question distincte qui est trop subjective pour être dérangée par ce poste.

      fond :

      J'avais l'habitude de faire une programmation de lots assez compliquée dans les journées des aînés et de rappeler Batch comme l'une des pires langues de programmation possibles que j'avais rencontrées.

      L'idée de cette question est venue après avoir vu un groupe de questions par lots à ce sujet et essayant de groker la réponse de l'un d'entre eux par une curiosité pure et d'abandonner la douleur après une minute, s'écria mentalement "Pourquoi quelqu'un passerait-il cette douleur au lieu de le faire dans 1 ligne de perl? " :)

      ma propre réponse plausible

      Je suppose qu'il peut y avoir un système probable compatible DOS, qui a un interprète DOS mais n'a pas de powerShell ou de perl compatible ... Je ne suis pas au courant d'un mais pas complètement impossible.


6 commentaires

Notez que les coques de ligne de commande DOS (Command.com) et Windows (CMD.exe) sont deux très différents mondes. Pour toutes les raisons pratiques, celles-ci ne partagent qu'un peu de syntaxe, mais rien d'autre. autoexec.bat n'existe pas non plus pendant un certain temps. Sauf si vous arrivez toujours à exécuter DOS ou Windows 9x.


@Johannes - hmmm ... Je vois toujours autoexec.bat dans toutes mes installations XP, bien que je n'ai jamais eu besoin de mettre quelque chose là-bas alors ne sais pas si cela fonctionne :)


C'est là pour les applications anciennes qui s'attendent à ce qu'elle soit là. Idem avec config.sys. Habituellement, ils sont vides. Windows fait une magie avec des variables d'environnement définies dans autoexec.bat chemin ou d'autres variables afin qu'ils puissent fonctionner correctement). Outre ces fichiers n'ont plus d'utilisation et c'est tout simplement un peu de compatibilité en arrière.


@Johannes - En d'autres termes, "autoexec.bat n'existe pas non plus" dans votre commentaire original devrait vraiment être lu comme "autoexec.bat n'est presque pas utilisé"?


Bonne chance de trouver un système où il n'est pas vide :-). Cependant, il n'est certainement pas analysé par le processeur de commande, mais plutôt recherché uniquement les variables d'environnement qui sont définies. De retour dans les NT 4 jours, cela peut avoir permis à certains programmes d'être toujours exécutés, de nos jours, il ne s'agit que de restes.


@Johannes - OK, merci! Je comprends maintenant ce que vous vouliez dire - désolé pour la confusion. Pour quiconque est aussi confus que j'étais à propos de Post-Winnt Autoexec.bat, veuillez regarder une très belle rédaction sur le wiki - en.wikipedia.org/wiki/autoexec.bat


5 Réponses :


9
votes

Parce que je travaille à une banque où le navigateur par défaut est IE6 sur Windows XP et je ne sais pas si je serai en mesure d'installer PowerShell sur l'ordinateur de quelqu'un et que j'ai un fichier de lots qu'ils peuvent utiliser pour être rapidement et facilement: xxx

avec l'ensemble du lot ayant besoin d'être runas / netonly car le poste de travail ne participe pas au domaine que le serveur SQL est activé / des fiducies.

pas que je 'pas' m Plantation ou quoi que ce soit ...

Et je dirais qu'ils sont non triviaux parce que parfois, ils prennent des paramètres et qu'ils nécessitent une attente assez folle.


0 commentaires

13
votes

En règle générale, la justification est que vous avez besoin du script pour fonctionner sur une machine qui ne dispose pas d'un autre interprète et sur lequel vous n'êtes pas autorisé à installer un interprète. Les serveurs de production de nombreuses entreprises sont un bon exemple - vous voulez qu'ils disposent de ci-dessous des vecteurs d'exploitation que possible, ce qui signifie aucune langues de script qui ne sont pas nécessaires pour la fonctionnalité de l'application.

Vous avez raison lorsque vous dites que le langage des lots est une langue terrible - il y a une raison pour laquelle ils couchent le temps et l'argent dans la construction de PowerShell - mais c'est aussi la seule langue universelle que vous puissiez compter sur les versions myriades de Windows.


9 commentaires

Hmm ... suppose que je suis tellement métissée à voir "la production" et "Windows" dans la même phrase, avoir toute ma vie existait dans le monde UNIX / Linux en ce qui concerne la production, n'a même pas pensé à cela. +1


Chômante, il existe en fait des entreprises qui utilisent Windows comme plate-forme de serveur. Parfois, cela fonctionne même.


Heck, notre entreprise fait. Je viens d'avoir le bien (je suppose) la fortune de ne jamais toucher ce côté de la force au travail. Le plus proche que je suis venu était d'être un administrateur NetWare dans les jours de collège :)


Pour être honnête, Windows fonctionne vraiment comme une plate-forme de serveur. Le mauvais rap possible (ces jours-ci, au moins) n'est pas tant la faute du système d'exploitation que les personnes qui le maintiennent habituellement. Les administrateurs UNIX ont tendance à provenir d'un monde de ligne de commande brutaux et de tumble; Les administrateurs de Windows proviennent souvent du support de bureau et ont des problèmes avec tout ce qui n'est pas pointu et clic.


Bien que DOS soit "universellement" disponible depuis l'Antiquité jusqu'à présent, mais les changements de syntaxe et l'omission de certains outils de lots dans les versions plus récentes brise souvent le code de lot si vous allez porter votre ancien code à nouveau. Ce n'est pas "universel" après tout.


@Zvis: Tous les exemples de commandes essentielles vous manquent? La majeure partie de mon code de lot est entièrement lot sans dépendance aux programmes externes. De temps en temps, il y a un FindStr ou trouver mais ces deux sont peu susceptibles de partir.


@DVK peut-il y avoir une vie après l'administration de NetWare?


@Sinan - jamais entendu parler de Nazgûl? :) ça vient de NetWare, pas quelques anneaux Dinky :)


Vous parlez de machines où vous ne pouvez pas installer un autre interprète, mais généralement les langages de programmation sont ou peuvent être compilés et ne nécessitant pas ou n'utilisent pas un interprète.



5
votes

J'ai un contrat dans une grande entreprise de services publics qui ne permet absolument pas les programmes non approuvés sur leurs ordinateurs. Qui seraient attendus des ordinateurs attachés aux réseaux les plus profonds qui se connectent entre les ordinateurs de contrôle et les appareils, mais l'interdiction s'applique également aux réseaux généraux et administratifs.

Le système d'exploitation approuvé est Windows XP SP3 avec IE6. La mise à niveau n'est pas autorisée tant que le support technique le bénie. Qui semble-t-il, peut encore être quelques années à partir de maintenant.

Par conséquent, les fichiers de lots sont le seul outil de script général disponible. Certaines machines de développeur ont accès aux compilateurs C ++, mais les programmes résultants ne sont pas autorisés à la distribution interne jusqu'à la conclusion d'un effort de validation (plurable plurable).


3 commentaires

Donc, ils autorisent les scripts de lot non évalés mais non non évalés CODE C ++ avec une fonctionnalité identique? Triste mais pas surprenant :)


Shhhh! Je ne serais pas le moins surpris s'ils ont ajouté une interdiction pour * des fichiers de lot non approuvés * -Si ils sont devenus conscients d'eux.


Vous faites que ça sonne comme ça serait une mauvaise chose? La prochaine fois que votre électricité s'éteint pendant une journée «Cause du code de merde non testé sur le réseau de la société Power Company, je suis sûr que vous voudrez peut-être pire à eux que de forcer simplement leur code passer par le biais de la révision du code ...



2
votes

Vous pouvez également choisir d'utiliser VBScript ou JScript plutôt que Perl et vous n'avez pas besoin de vous soucier de l'installation d'un logiciel supplémentaire.


1 commentaires

L'hôte de script Windows peut être désactivé avec les stratégies de groupe.



0
votes

diverses raisons

  1. sa politique de la société, que ce soit pour la sécurité ou d'autres raisons illogiques données par la direction, que vous êtes strictement Utilisez DOS.
  2. vous avez dû soutenir certains dons hérités scripts déjà écrits.
  3. vous ou les administrateurs de la société seulement savoir DOS et n'avoir aucune capacité apprendre d'autres langues.
  4. Vous codez pour une partie d'un plus grand Programme DOS déjà écrit
  5. faire des choses le moyen "plus dur" te faire regarder Cool.
  6. vous avez beaucoup de temps sur vos mains pour concevoir des solutions de contournement pour certains des choses difficiles à faire facilement avec DOS

1 commentaires

Je doute gravement DOS est un problème n'importe où actuellement. Nous sommes passés à ce moment-là depuis plus d'une décennie maintenant et cela n'existe même plus sur des fenêtres 64 bits.