2017-10-18 5 views
0

J'ai besoin de dupliquer plusieurs fois le fichier J'ai une liste de numéros de produits qui doivent être utilisés dans le nouveau nom de fichier - donc exemple; fichier originalRenommage de traitement par lots

  1. appelé photo.main.jpg
  2. Je dois copier les nombreux temps de fichier photo.main.jpg (j'espère mettre les noms à remplacer dans un fichier à lire)
  3. Je noms de produits dire 123, 456, 789, 345, 221 dans le fichier et le nom du produit doit remplacer le mot "photo" dans le fichier.
  4. ce scénario, je voudrais 5 nouveaux fichiers appelés 123.main.jpg, 456.main.jpg, 789.main.jpg, 345.main.jpg et 221.main.jpg

J'espère faire dans l'invite de commande Windows - quelqu'un peut-il aider?

+2

Nous ne devrions pas coder pour vous, nous devrions juste vous aider dans votre code existant ... Où avez-vous ces noms de produits? Voulez-vous les entrer un par un, sont dans un fichier, ...? –

+3

Veuillez inclure le code que vous avez essayé. – LW001

+0

Il n'y a pas d'invite DOS dans les systèmes Windows modernes, c'est l'invite de commande Windows ... – aschipfl

Répondre

0

Bien que cela puisse être fait dans un shell cmd, PowerShell fournit un accès au traitement d'expressions rationnelles qui peut le rendre très flexible. L'expression regex $ replpat peut être tout ce qui fournit ce dont l'expression rationnelle dans la commande Copy-Item a besoin. L'utilisation de $ matches n'est pas requise.

$orgfile = 'photo.main.jpg' 
$prodfile = '.\prodlist.txt' 
$replpat = '[^\.]*(.*)' 

$ismatch = $orgfile -match $replpat 
$filebase = $matches[1] 

Get-Content -PSPath $prodfile | 
    ForEach-Object { 
     Copy-Item -Path $orgfile -Destination "$_$filebase" -WhatIf 
    }