en utilisant la version est assez hors de propos. Vous remarquerez que lors de l'exécution
echo %cmdextversion%
il a été 2
depuis toujours. La majorité des commandes sont toujours les mêmes sur toutes les versions de cmd.exe sauf si vous revenez aux jours de command.com
Les modifications de l'OS font une petite différence, mais il y a une ligne fine où vous pouvez soyez en sécurité avec à peu près n'importe quelle commande dans un fichier batch. Par exemple, vous ne devriez pas revenir aux jours cd C:\Progra~1
à la place, il suffit d'envelopper l'espace contenant les chemins entre guillemets. Mais, la vraie solution à votre problème serait de faire vérifier le système d'exploitation dans vos fichiers de commande, puis goto
correspondant à chaque système d'exploitation. La plupart des commandes basées sur MS-Dos
sont à peu près les mêmes, à l'exclusion des nouvelles commandes disponibles uniquement sur les nouveaux systèmes, mais encore une fois, elles peuvent être ignorées en vérifiant ver
avant d'exécuter des parties du fichier batch/cmd.
Voici un exemple de quelque chose qui fonctionnera à peu près n'importe quel système d'exploitation Windows.
for /d %%a in ("F:\Program Files\TrendReports\GRP\Hourly\*") do (xcopy /Y "%%a\%datetime%\*." "C:\Temp-stats")
Certains très anciens systèmes NT pourraient ne pas aimer l'aide "F:\Program Files"
où l'ancienne méthode de C:\Progra~1
est encore 100% exceptés sur le dernier système d'exploitation.
comme une note de côté sur 64 fenêtres de bit, cd C:\Progra~2
volonté cd C: \ Program Files (86) `
Ainsi, le point de l'être, vous pouvez exécuter un fichier batch sur un système d'exploitation Windows, si structuré correctement et vous assurer que les modifications mineures dans certaines commandes sont prises en charge en vérifiant la version du système d'exploitation dans le script et en suivant le goto de chaque version du système d'exploitation.
vous pouvez peut-être vérifier la ver
et définir la version dans le script comme ceci:
for /f "tokens=2 delims=[]" %%x in ('ver') do set WINVER=%%x set WINVER=%WINVER:Version =%
Êtes-vous essayer d'obtenir la version de Windows qu'ils utilisent? –
La commande 'ver' montrera la version de construction. Vous pouvez vérifier cette page pour voir la cartographie -> https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx – npocmaka
@BaliC non merci, était juste quelque chose trivial je suis tombé sur. Assez sûr que ver va imprimer la version Windows.Vous cherchez un moyen de tester mon chauve-souris sur plusieurs versions de Windows tout sur mes fenêtres 10 pc – ryan