1 votes

Écrire un fichier fictif dans chaque sous-répertoire ?

Je veux copie un fichier texte fictif dans chaque sous-répertoire d'un répertoire donné sur un lecteur réseau (Windows). Comme il s'agit de centaines ou de milliers de sous-répertoires, je ne peux pas le faire manuellement, mais je peux créer une liste des répertoires concernés. Cette liste pourrait être transmise à un fichier batch ou similaire.

Je suppose que le fichier batch doit avoir une sorte de boucle for qui prend une ligne de la liste du répertoire comme compteur. A chaque itération, la boucle créerait un fichier vide dans le répertoire indiqué par le compteur, mais je n'ai pas les compétences nécessaires pour créer le fichier batch approprié.

Quelle est la meilleure façon d'aborder ce problème ?

Mise à jour :

c:\help for comprend un /R commutateur qui semble utile :

FOR /R [[drive :]path] %variable IN (set) DO command [command-parameters]
Parcourt l'arborescence des répertoires ayant pour racine [drive :]path, en exécutant l'instruction FOR dans chaque répertoire de l'arborescence. Si aucune spécification de répertoire répertoire n'est spécifié après /R, le répertoire courant est alors en cours. Si set n'est qu'un simple point (.), il énumérera simplement l'arborescence des répertoires. énumérera simplement l'arborescence des répertoires.

Cela semble simple, mais j'ai besoin de lire une ligne de la liste des répertoires :

for % ? in (.) do echo % ? > dumy_file.txt


Detalles: Mon équipe dispose d'un disque réseau partagé avec des milliers de sous-dossiers remplis de documentation périmée et d'anciens documents de travail ; c'est un véritable gâchis. Le plan consiste à créer ailleurs une nouvelle arborescence (c'est fait) qui reflète notre futur concept de fichiers, puis à déplacer ou à supprimer les fichiers de l'ancienne arborescence. Pour savoir quels sous-répertoires ont déjà été "migrés", nous avons pensé qu'il serait pratique d'avoir un marqueur "à faire" sous la forme d'un fichier fictif qui peut être recherché.

2voto

prakash Points 18075

Voici une ligne de conduite qui fait ce que vous voulez, en utilisant for /r comme vous le suggérez.

Si vous le placez dans un fichier batch, vous devez modifier %d a %%d dans les deux endroits.

for /r %d in (dummyfilename.txt) do echo dummy content > "%d"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X