Blog Tech

Récupérer la version de Windows en script batch

Batch et VBScript 18
A ce point ?PassableIntéressantYeahExcellent! (3 vote(s), 3,67/ 5)
Loading...

Si vous utilisez des scripts batchs au sein de votre réseau de PC, il peut être utile suivant la version de Windows d'agir différemment. En effet, une fonction système qui fonctionne sur Windows XP peut ne pas fonctionner sur Windows 98 (et vice-versa).

Aussi étonnant que cela puisse paraître il n'existe pas de variable d'environnement permettant de récupérer cette information sur la version ! Seule la variable %OS% est définie mais ne permet pas différencier les différents OS bâtis sur les noyaux NT (tels que 2003, 2000, XP), de plus elle n'est pas présente sur tous les OS Microsoft.

Je vous propose donc une solution que j'ai du mettre en place dans le cadre d'un script qui, je l'espère, vous servira à votre tour.

La liste des versions de Windows NT est disponible sur Wikipedia (version list).

Récupérer la version de l'OS dans une variable :

@echo off
cls
color 5F
REM Detection de l'OS (source blogmotion.fr)
ver | find /i "version 10.0." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Insider Preview
ver | find /i "version 10.0.100" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Technical Preview
ver | find /i "version 10.0.10586" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Threshold 2
ver | find /i "version 10.0.10240" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Threshold 1
ver | find /i "version 6.4." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Technical Preview
ver | find /i "version 6.3." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 8.1-2012R2
ver | find /i "version 6.2." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 8-2012
ver | find /i "version 6.1." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 7-2008R2
ver | find /i "version 6.0." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows Vista-2008
ver | find /i "version 5.1." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows XP
ver | find /i "version 5.2." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 2003
ver | find /i "Windows 2000" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 2000
ver | find /i "Windows NT" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows NT
ver | find /i ">Windows ME" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows ME
ver | find /i "Windows 98" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 98
ver | find /i "Windows 95" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 95

echo OS : %$VERSIONWINDOWS%
echo.(source du script: https://blogmotion.fr)
echo.

Voila le résultat du script (vous devinerez à partir de quel OS je l'ai lancé) :

Diriger l'exécution dans un label suivant l'OS : » Lire la suite

Créer un menu de sélection de choix en DOS

Batch et VBScript 5
A ce point ?PassableIntéressantYeahExcellent! (5 vote(s), 4,40/ 5)
Loading...

Si jamais vous réalisez des scripts en batch vous aurez peut-être un jour besoin de proposer un menu choix à choix multiple à l'utilisateur :
» Lire la suite

Testeur d’expressions régulières Javascript en ligne

web 2
A ce point ?PassableIntéressantYeahExcellent! (Votez !)
Loading...

Pas facile d'écrire les bonnes expressions régulières lorsqu'on ne les manipule pas régulièrement.

Pour valider vos expressions régulières sans avoir à bidouiller votre code, je vous propose de les essayer directement en ligne via le testeur d'expressions régulières de QuentinC :

» Lire la suite

Mieux comprendre le rendu par défaut des éléments HTML

Dév 9
A ce point ?PassableIntéressantYeahExcellent! (Votez !)
Loading...

Tout développeur sait (ou doit savoir) que les différents navigateurs internet n'interprètent pas de la même façon les propriétés de mise en forme CSS. Je ne parle pas là des "hacks" pour pallier aux fonctionnalités non supportées par les moteurs graphiques des navigateurs, mais bien des attributs CSS de base : margin, padding, etc...

Pour visualiser le rendu de votre navigateur je vous propose cet outil de Julien Royer :

» Lire la suite

Supprimer les doublons d’une table SQL

PHP (My)SQL 23
A ce point ?PassableIntéressantYeahExcellent! (17 vote(s), 4,82/ 5)
Loading...

Une base de donnée bien pensée dès le départ n'est pas censée contenir de doublons, mais comme l'erreur est humaine, je vous propose une méthode de suppression de vos doublons MySQL.

Création de la table

Pour l'exemple je vous propose de créer une table 'membre' simple :

[sql]CREATE TABLE membre (
id int(10) NOT NULL AUTO_INCREMENT,
nom varchar(30),
prenom varchar(30),
age int(3),
datecreation timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);[/sql]

Nous admettrons que l'unicité est basée sur la composition du nom et prénom, c'est à dire que deux personnes physiquement différentes ne peuvent avoir le même couple de nom+prénom (ce qui dans la réalité n'est bien sûr pas valable). » Lire la suite

Sortie de WPX-LastPostMod 1.1

PHP (My)SQL 2
A ce point ?PassableIntéressantYeahExcellent! (1 vote(s), 4,00/ 5)
Loading...

Je vous ai présenté hier mon premier plugin WordPress WPX-LastPostMod. J'ai tenu compte de certains commentaires (merci Michaël) et évolutions proposées pour aujourd'hui vous proposer une nouvelle version (1.1).

Les nouveautés et changements :

  • Ajout de la fonction is_post_modified() qui permet de tester si un billet a été éditer, et ce sans rien afficher (retourne un booléen)
  • Ajout d'une classe CSS ".lastpostmod" qui vous permettra de mettre en forme la notification de mise à jour de vos billets
  • Suppression de l'unique requête sql du plugin, je me sert directement de la variable $post initialisée nativement par WordPress (plus léger)

Pour l'occasion j'ai réalisé un mini site d'information qui vous permettra de suivre les évolutions du plugin, les exemples d'utilisations, etc. N'hésitez donc pas à y faire un tour 😉

Vous pouvez faire la mise à jour du plugin sans pour autant aller modifier à nouveau single.php, tout est "rétro-compatible", l'appel au plugin de fait de la même façon.

Note : pour celles et ceux qui se demandent pourquoi pas mal d'informations sur le plugin ne sont uniquement disponible qu'en anglais, c'est tout simplement pour que le plugin soit utilisé sur un maximum de blog sans trop de difficulté. Si vous souhaitez avoir une traduction française, faites le moi savoir 😉

Sachez également que je suis en attente de validation sur WordPress.org, vous pourrez également le retrouver là bas un peu plus tard (sûrement une relecture du code par un modérateur)...

Télécharger WPX-LastPostMod 1.1

Remettez vos vieux billets au goût du jour avec WPX Last Post Mod

Le blog, PHP (My)SQL 12
A ce point ?PassableIntéressantYeahExcellent! (3 vote(s), 3,67/ 5)
Loading...

Lorsque vous rédigez un billet avec WordPress la date de création est mémorisée et affichée sur le billet (l'endroit dépend des thèmes). Il m'arrive personnellement de revoir certains billets pour plusieurs raisons :

  • fermeture d'un site qui a fait l'objet d'un billet (comme ici)
  • ajout d'informations importantes glanées sur le web en relation avec le billet
  • si une astuce/conseil n'est plus d'actualité il faut le signaler et ajouter une note explicative, ce n'est pas parce que c'est un ancien billet qu'on peut y laisser n'importe quoi
  • correction pour faute de frappe/orthographe/grammaire

Naissance d'un plugin

C'est pour la majorité de ses raisons que vous vous devez d'en informer vos lecteurs de la revue de l'un de vos billets. Par défaut il n'est nul part prévu d'afficher la date de modification d'un billet... Suite à ça j'ai fait plusieurs recherches sur le web au niveau des différents plugins existants sur la communauté WordPress, pour arriver à un constat assez simple : aucun des plugins ne me convenait mais un s'en rapprochait.

N'ayant jamais réalisé de plugin WordPress, je me suis lancé et je vous présente donc mon premier plugin WPX-LastPostMod (WordPress Xhark Last Post Modification) » Lire la suite

WordPress 2.7 sera très réussi

Dév 1
A ce point ?PassableIntéressantYeahExcellent! (1 vote(s), 4,00/ 5)
Loading...

A en croire une preview du blog officiel de WordPress, la nouvelle version 2.7 de la plus populaire plateforme de blog WordPress sera très réussie :

Des dégradés agréables à la vue, une organisation optimisée avec un menu vertical en remplacement l'actuel et pas très pratique horizontal. C'est propre, soigné et efficace : c'est WordPress !

Personnellement j'ai hate qu'elle arrive car l'ergononie de WordPress est loin d'être excellente dans la version actuelle (2.6).

Lire le billet du blog WordPress (anglais)

Validation instantannée d’un formulaire en AJAX

web 4
A ce point ?PassableIntéressantYeahExcellent! (4 vote(s), 4,25/ 5)
Loading...

Les formulaires sont à mon avis un des aspects le plus frustrants que l'on peut rencontrer sur un site web, cela pour plusieurs raisons :

  • Trop d'informations vous sont généralement demandées
  • Absence d'information concernant le type de donnée à entrer au clavier
  • En cas d'erreur il vous faut généralement tout retaper (sauf si le webmaster a pris soin d'utiliser des sessions, ce qui lui complique la tâche)

Les formulaires mal pensés sont source de perte de visiteurs, surtout lorsque la concurrence est rude... Bien que cela puisse être également un bon frein si votre service rencontre trop de succès, mais ce cas est bien assez rare 😉

La meilleure façon pour rendre ces formulaires un peu moins rebuttants est d'implanter un système de validation en temps réel. Pour cela, le méthode la plus appropriée est ne validation gérée par de l'AJAX. De cette façon un formulaire ne pourra être envoyé qu'une fois toutes les conditions satisfaites.

Pour ce faire je vous propose d'utiliser le script LiveValidation. Son utilisation est simple, propre et fonctionnelle et vous évite à recoder la roue, alors pourquoi s'en priver ?

Le script s'adapte très bien à vos exigences de part ses nombreuses possibilités. Vous pouvez par exemple contrôler les champs à l'envoie du formulaire ou à la frappe, combiner plusieurs méthodes de vérification (inclusion, exclusion, type de données, etc.).

C'est un script très complet qui vous fera gagner en temps mais également en notoriété 😉

Télécharger LiveValidation

Importer une base SQL en console (WAMP)

PHP (My)SQL 16
A ce point ?PassableIntéressantYeahExcellent! (3 vote(s), 4,67/ 5)
Loading...

J'ai récemment changer de PC, il m'a fallu exporter mes bases de données (depuis phpMyAdmin) dans un fichier texte (.sql).

Au moment de l'importation avec PhpMyAdmin j'ai eu un message d'erreur de la part du serveur Apache :

Fatal error: Maximum execution time of 300 seconds exceeded

Mes bases de données sont trop volumineuses pour les importer via phpMyAdmin (plus de 5 mo) en HTTP.

J'ai eu beau modifier tous les fichiers de configuration (php.ini, etc.), il a du rester un endroit où le temps maximal d'exécution n'a pas été modifié...

La solution la plus simple pour faire de l'import massif reste la console mysql. Voici comment importer une telle configuration sur une plateforme Windows :

  1. Copiez votre fichier .sql (localhost.sql dans mon cas) dans le répertoire contenant mysql.exe (pour ma part : C:\wamp\bin\mysql\mysql5.0.51b\bin)
  2. Ouvrez une fenêtre DOS (Touche Windows + R > CMD [OK])
  3. Déplacez vous en ligne de commande dans le répertoire de mysql.exe (cd C:\wamp\bin\mysql\mysql5.0.51b\bin dans mon cas)
  4. Puis lancez l'importation du fichier : mysql -u root -p VotrePassword NOM_BDD < localhost.sql ("root" étant à remplacer par le nom d'utilisateur de votre base de donnée s'il diffère)
  5. L'invite vous demande votre mot de passe ("Enter password:")
  6. Si aucun message d'erreur n'est apparu, l'importation est terminée 🙂 Dans le cas contraire, des erreurs explicites vous indiqueront ce qui cloche (ce sont les mêmes erreurs que vous auriez eu avec phpMyAdmin puisque c'est le moteur MySQL qui les génère).

Si vous avez des erreurs du style "Can't create database 'toto'; database exists" vous pouvez utiliser phpMyAdmin pour pallier à la situation (supprimez la table qui existe déjà dans ce cas précis).

Vous pouvez également utiliser mysqlimport.exe présent dans le même répertoire que mysql.exe, cela peut vous être utile dans des scripts batch par exemple.

Pour importer rapidement une base gzippée sous Linux (source) :

gunzip -c /chemin/base.sql.gz | mysql -h hostname -u utilisateur -p  nom_de_la_base

Je vous rappelle que WAMP n'est pas destiné à être utilisé en production. Il doit être employé à des fins de tests en pré-production par exemple.

Note : avez-vous reconnu le logo de phpMyAdmin façon "naturelle" en haut de ce billet :p ?

Télécharger WAMP - Télécharger phpMyAdmin