Partage
  • Partager sur Facebook
  • Partager sur Twitter

[BATCH] ajout de texte dans un fichier

après une commande wmic

    29 juin 2021 à 14:56:19

    Bonjour,

    voici cette commande qui permet de supprimer un profil utilisateur d'apres un fichier texte :

    for /f "delims=" %%j in ('type \\%SERVEUR%\%DOSSIER%\SupprUsersProfils\Users.txt') DO  (
        wmic /node:localhost path win32_UserProfile where LocalPath="c:\\users\\%%j" Delete
    )

    J'aimerai que lorsqu'il supprime un profil utilisateur, il l'indique dans un fichier texte avec la date du jour comme ceci >>suppression de %%j le %date%

    Mais je ne sais pas comme faire.

    -
    Edité par Deuvool 29 juin 2021 à 15:28:08

    • Partager sur Facebook
    • Partager sur Twitter
      29 juin 2021 à 18:55:45

      Bonsoir,

      Un truc comme ceci : echo Suppression du profil %%j le %date%>>Fichier.txt

      • Partager sur Facebook
      • Partager sur Twitter
        30 juin 2021 à 9:09:34

        Malheureusement c'est pas si simple. Si je met un echo Suppression du profil %%j le %date%>>Fichier.txt dans la boucle for, il va écrire le résultat du wmic quand il y a correspondance pour suppression, et aussi quand il n'y en a pas.Il faudrait que sa ecrit dans le fichier texte que si il y a bien suppression.

        J'ai l'impression que je dois voir le programme différemment, il faudrait que je compare le répertoire users avec le fichiers, que j'extrai les noms des répertoire qui sont bien dans le fichier users.txt. Puis je lance un for et le wmic avec cette nouvelle qui ne contient que des noms de répertoire qu'il faut supprimer, je pourrai alors mettre le echo de suppression.

        Ou alors il est possible de faire un genre de SI delete alors echo suppression du profil ... mais est ce que cela peut se faire ?

        • Partager sur Facebook
        • Partager sur Twitter
          30 juin 2021 à 19:19:50

          Peut-être en regardant la valeur retour de la commande wmic -> echo %errorlevel% (si tu met ça dans la boucle for, active l'expansion de variable retardée -> https://www.developpez.net/forums/d697396/general-developpement/programmation-systeme/windows/scripts-batch/explication-l-expansion-retardee/)

          En espérant que la valeur de retour est différente en cas de réussite/échec.

          Sinon peut-être via une redirection : wmic ... && echo suppression >>fichier.txt

          && Utilisé pour combiner deux commandes avec condition. Exécute commande2 uniquement si commande1 s'est terminée avec succès. commande1 && commande2
          || commande2 est exécutée uniquement si commande1 ne s'est pas exécutée correctement. commande1 || commande2
          • Partager sur Facebook
          • Partager sur Twitter
            1 juillet 2021 à 10:33:18

            J'ai fait avec boucle combiné

            La première récupère le nom du répertoire dans c:\user

            la deuxième test ce nom de répertoire avec tous les noms de la liste

            Si il y a correspondance alors suppression, puis inscription dans le fichier texte

            for /f "delims=" %%a In ('dir /ad/b "c:\users\"') Do (
            for /f "delims=" %%j in ('type \\UsersProfils\Users.txt') DO  (
            if %%a EQU %%j (wmic /node:localhost path win32_UserProfile where LocalPath="c:\\users\\%%j" Delete)
            if %%a EQU %%j echo Profil %%j suppr le %date%>>C:\log\supprProfils.log
            )
            )

            • Partager sur Facebook
            • Partager sur Twitter

            [BATCH] ajout de texte dans un fichier

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown