J'ai une liste de fichiers extraits d'une table dans une base de données SQL. Le fichier peut être un fichier texte délimité ou une feuille de calcul Excel, selon ce qui convient le mieux.
Le fichier ressemble à ceci
sourcePath1\fileName1, destPath1\fileName1
sourcePath2\fileName2, destPath2\fileName2
sourcePath3\fileName3, destPath3\fileName3
etc
Une colonne contient le chemin d'origine et le nom du fichier des fichiers, la seconde colonne contient le chemin et le nom du fichier souhaités. Cela a été obtenu à l'aide d'une fonction REPLACE () standard dans l'instruction SELECT d'origine.
Maintenant, j'ai la liste (s) dont j'ai réellement besoin pour copier le fichier source vers la destination.
Est-ce réalisable en utilisant la ligne de commande (batch ou Powershell?) Ou via un script ou une interface graphique?
md
avant lacopy
commande, soit utiliser comme vous l'avez fait dans votre réponsexcopy
.Basé sur la réponse de David Ruhmann, les travaux suivants. Il utilise
xcopy
et transmet unF
message à l'invite qui demande si le fichier est un fichier ou un dossier.EDIT: Ajout du tilde (~) selon la suggestion de @DavidRuhmann.
la source
:)
Juste quelques notes de lot. 1. Le cmd / c n'est pas nécessaire. 2. Lors de l'ajout de citations aux chemins, ajoutez le tilde pour supprimer toutes les citations existantes (le cas échéant) "%% ~ A". Il ne s'agit que d'une étape de vérification d'erreur au cas où des citations sont déjà incluses autour des chemins.C'est assez facile à faire avec un shell Unix. Voici comment vous pourriez le faire avec mon shell C Hamilton . (La version gratuite le fera.) Vous pouvez faire quelque chose de très similaire avec Cygwin
bash
.La méthode la plus simple consiste à transformer la liste à l’aide de sed en un script dans lequel chaque ligne correspond à une
cp
opération. Ensuite, lancez le script.Voici à quoi ce
copyscript.csh
fichier ressemblerait:la source
<< endExample
....endExample
Vous pouvez lire la liste depuis un fichier en utilisant< listoffilepairs
. Si vous ne parvenez pas à faire fonctionner ce travail, appelez-le et je vous expliquerai tout. (Oui, je soutiens même ma version gratuite.)