Fichier de commandes pour copier des fichiers d'un dossier en constante évolution sur un autre lecteur

0

Voudrais automatiser dans un fichier de commandes la copie d’un ensemble de fichiers texte que nous recevons chaque mois dans un nouveau dossier d’un lecteur réseau vers un autre lecteur réseau, en remplaçant automatiquement tous les fichiers existants.

Un peu d’arrière-plan: nous recevons la deuxième semaine de chaque mois un extrait de 14 fichiers au total dans un dossier portant cette convention de nommage, DatabaseFilesyyyymmdd , sur l’un de nos disques partagés ( \\server1\receptacle ). Une fois reçu, une autre équipe valide les données et informe ensuite notre équipe qu’elles sont prêtes à être chargées dans une table Oracle existante. Nous copions les fichiers (pas le dossier) sur un autre lecteur réseau ( \\server2\loading ) et lancez le script.

Ce nouveau dossier porte naturellement la même date que les fichiers de données extraits. L’objectif est de créer un fichier .bat que nous pourrions ensuite lancer pour automatiser la tâche de copie, mais la variabilité des nouveaux noms de dossier m’a empêchée de créer un script. Toute aide appréciée.

Edit: un moyen de découvrir et d’écrire le nom du dossier le plus récemment créé dans \ réceptable est ce que je tente de comprendre en copiant les fichiers sur un autre lecteur.

le0pard13
la source
1
copy F:\receptacle\* F:\loading?
G-Man
Si les fichiers étaient à la racine de F: \ réceptacle, cela fonctionnerait, mais les nouveaux fichiers seront situés dans des sous-dossiers différents chaque mois.
le0pard13
Donc quel est le problème? Écrire un fichier batch pour générer le DatabaseFilesyyyymmdd nom de dossier? modifier votre question pour dire où vous êtes coincé.
G-Man
Oui, c'est là que je suis coincé. Par exemple, le dossier le plus récent que nous avons reçu était "DatabaseFiles20170912". Le mois prochain, c'est probablement le 10, mais parfois, ils sont en retard d'un jour ou deux, toujours avec la date d'extraction. Peut-être devrais-je chercher le dossier avec la date de création la plus récente?
le0pard13
Je suis désolé; avez-vous manqué la partie où j'ai dit «‘ modifier ta question…''?
G-Man

Réponses:

0

Cela ressemble à du contrôle manuel que votre équipe peut vérifier en premier.

Assurez-vous que le fichier de commandes et le script de lancement prennent le nom du dossier en tant que paramètre (ligne de commande), puis appelez le fichier de traitement avec le nom du dossier qu'il peut utiliser pour la copie, puis transmettez-le au lancement. scénario.

Vous pouvez créer une cible "Envoyer à" personnalisée pour le menu contextuel de l'explorateur, il vous suffit de sélectionner et de cliquer.

Si vous avez besoin d'une situation de dossier surveillé, créez un nouveau dossier pour que la 1ère équipe puisse y déposer les fichiers appelés "validés" et demandez à votre fichier de traitement par lots de s'assurer que le dossier validé ne contient que le seul travail. Peut-être avec une configuration de type "fichier canary" pour que le travail ne démarre pas pendant le transfert des fichiers.

Si vous devez mettre en miroir le dossier "réceptacle" dans "chargement", utilisez robocopy pour éviter une recopie inutile.

Yorik
la source