Perl est plus puissant que les scripts de traitement par lots, mais étant donné que Perl ne sont pas inclus avec Windows, il semble exagéré pour des tâches comme celui-ci. Cela devrait par exemple fonctionner:
FOR /R C:\hello\ %%G IN (*.txt) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
Notez que vous ne pouvez pas faire cela directement dans l'invite, vous devez l'enregistrer en tant que fichier .bat. Il est bien sûr également possible de permettre à l'utilisateur de spécifier les chemins et les extensions avec la ligne de commande comme ceci:
FOR /R %1 %%G IN (%2) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
Plus d'informations sur FOR et autres fenêtres commandes de ligne de commande se trouve ici: http://ss64.com/nt/
Cette serait alors exécuté avec:
test.bat C:\Hello\ *.txt
EDIT: Cela vous oblige évidemment d'avoir 7-Zip installé, mais il est assez évident où changer le code si vous souhaitez utiliser une autre fermeture éclair. Gardez également à l'esprit de toujours être extrêmement prudent lors de l'expérimentation avec des scripts tels que celui-ci. Une petite erreur pourrait lui faire supprimer beaucoup de fichiers, donc vous devriez toujours le tester sur une copie du système de fichiers jusqu'à ce que vous soyez absolument sûr que cela fonctionne.
Que voulez-vous dire par "archive", exactement? Certains outils d'archivage le feront en une seule commande ... –
Par exemple, j'ai un répertoire avec say 15 sous-répertoires, qui à leur tour ont chacun plus de sous-répertoires. Il y a certaines extensions de fichiers Sharepoint n'aime pas, et donc tous ceux-ci doivent être compressés. – Scott