Script sous windows.
Résolu
firac
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
firac Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
firac Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour.
Aidez svp à ecrire ce script:
Nous sommes sous l'environnement windows. Nous avons un repertoire nommé travaux contenant aussi bien des fichiers texte, audio, video et des repertoires. Nous nous placons dans le repertoire parent du repertoire travaux. Notre objectif est de renommer travaux en works sans utiliser la commande permettant de renommer. La methode consiste à créer le repertoire works et de copier tout le contenu du repertoire travaux dans works. Enfin on supprime travaux et son contenu. Ecrire un script permettant de renommer par recopie.
Aidez svp à ecrire ce script:
Nous sommes sous l'environnement windows. Nous avons un repertoire nommé travaux contenant aussi bien des fichiers texte, audio, video et des repertoires. Nous nous placons dans le repertoire parent du repertoire travaux. Notre objectif est de renommer travaux en works sans utiliser la commande permettant de renommer. La methode consiste à créer le repertoire works et de copier tout le contenu du repertoire travaux dans works. Enfin on supprime travaux et son contenu. Ecrire un script permettant de renommer par recopie.
A voir également:
- Script sous windows.
- Clé windows 8 - Guide
- Montage video windows - Guide
- Windows ne démarre pas - Guide
- Windows movie maker - Télécharger - Montage & Édition
- Restauration systeme windows 10 - Guide
4 réponses
Je vois pas trop l'interêt, de ce script ou sinon je n'ai pas du comprendre ce que tu demandes.
Dans le doute je propose quand même une réponse :
En Batch
En VBS
En PowerShell V1/V2
Voilà en esperant que cela puisse t'aider.
Dans le doute je propose quand même une réponse :
En Batch
REM retour au dossier parent Cd .. REM Copie de tous les fichiers et dossiers (y compris les dossiers vide) et création du dossier s'il n'existe pas (/I) REM /G pour la prise en charge des fichiers crypté REM /H pour la prise en charge des fichiers caché REM /K Copie des attributs (lecture seule, archive, ...) REM /O pour la copie des ACL (droits sur les fichiers) REM /X pour la copie de la DACL (liste d'audit) Xcopy Travaux Works /E /I /G /H /K /O /X REM On gette les erreurs IF %ERRORLEVEL% == 0 THEN GOTO SUPPRESSION GOTO ERREUR :SUPPRESSION REM On supprime le dossier Travaux sans confirmation rd Travaux /S /Q goto FIN :ERREUR Echo Une erreur s'est produite, fin du script :FIN
En VBS
CONST DOSSIER_SOURCE = "Travaux" CONST DOSSIER_DESTINATION = "Works" 'On crée une procédure recursive pour la copie des fichiers et dossiers Sub CopierArborescence (pstrSource, pstrDestination) Set lobjFileSystemobject = CreateObject("Scripting.FileSystemobject") If lobjFileSystemobject.FolderExists(pstrSource) then Set lobjDossierSource = lobjFileSystemobject.GetFolder(pstrSource) 'On crée le dossier destination s'il n'existe pas If Not lobjFileSystemobject.FolderExists(pstrDestination) then lobjFileSystemobject.CreateFolder(pstrDestination) End If 'On copie tous les fichiers For Each lobjFichier In lobjDossierSource.Files lobjFichier.Copy pstrDestination & "\" & lobjFichier.Name lobjFichier.Delete next 'On relance le traitement pour chaque dossier For Each lobjDossier In lobjDossierSource.SubFolders CopierArborescence lobjDossier.Path, pstrDestination & "\" & lobjDossier.Name lobjDossier.Delete Next Else Wscript.Echo "Dossier " & DOSSIER_SOURCE & " est introuvable" Wscript.Quit End if End Sub CopierArborescence DOSSIER_SOURCE, DOSSIER_DESTINATION
En PowerShell V1/V2
## Encore plus simple, en une ligne copy-item Travaux Works -recurse;Remove-Item Travaux -recurse ## l'avantage de l'avoir sur une ligne c'est que si l'instruction de copie échoue, t'es sur que le remove ne se lancera pas
Voilà en esperant que cela puisse t'aider.
Salut, merci beaucoup mais c`est que etant un novice dans ce domaine est ce que je peux avoir un batch le plus simple possible?
Il suffit de retirer les commentaires, ils ne servaient qu'a la compréhension du code.
Donc ça donne :
Si tu retires la gestion d'erreur d'arrive à ça
Mais le problème est que si une erreur se produit pendant la copie des fichiers, le dossier sera quand meme supprimé ce qui peut être très dangereux.
La solution basé sur PowerShell ne souffre pas de se problème car l'instruction de suppression n'est executé que si la copie à fonctionné (test implicite).
Donc ça donne :
Xcopy Travaux Works /E /I /G /H /K /O /X IF %ERRORLEVEL% == 0 THEN GOTO SUPPRESSION GOTO ERREUR :SUPPRESSION rd Travaux /S /Q goto FIN :ERREUR Echo Une erreur s'est produite, fin du script :FIN
Si tu retires la gestion d'erreur d'arrive à ça
Xcopy Travaux Works /E /I /G /H /K /O /X rd Travaux /S /Q
Mais le problème est que si une erreur se produit pendant la copie des fichiers, le dossier sera quand meme supprimé ce qui peut être très dangereux.
La solution basé sur PowerShell ne souffre pas de se problème car l'instruction de suppression n'est executé que si la copie à fonctionné (test implicite).