Sto provando a copiare ricorsivamente i file e rinominarli.Rinomina dopo aver copiato utilizzando powershell
Le mie cartelle hanno un file con lo stesso nome, quindi ho bisogno di rinominarlo nel momento in cui è stato copiato.
Ma io continuo ad affrontare il problema. Di seguito è riportato il mio codice. Dovrebbe trovare il file CopyForBuild.bat e copiarlo nella cartella E: \ CopyForBuild. Una volta copiato, il primo file dovrebbe essere Copyforbuild1.txt, il secondo sarà CopyforBuild2.txt e così via.
Il seguente è il mio codice. Dove sto fallendo?
$File = Get-ChildItem -Path V:\MyFolder -Filter CopyForbuild.bat -Recurse
$i=1
Foreach ($f in $File)
{
Copy-Item $f "E:\copyforbuild\"
Rename-Item -path "E:\Copyforbuild\"+"$f" -newname "CopyForbuild"+"$i"+".txt"
$i = $i+1
}
Perché non processo tutto uno alla volta (e ricorda che le variabili ricevono valori predefiniti): 'Get-ChildItem -Path V: \ MyFolder -filt CoptForBuild.bat -rec | Copia-Item -dest {"E: \ copyforbuild \" + $ _. BaseName + ($ i ++) + ". Txt"} '. (I cmdlet con parametri che non accettano l'oggetto di tipo, come la destinazione di "Copia-Oggetto", hanno un insito per-ciascuno usando le parentesi graffe quindi non c'è bisogno di un ciclo per determinare la destinazione.) – Richard
Compagno, Si genera un'eccezione . "Copy-Item: Impossibile associare l'argomento al parametro 'Path' perché è null." $ File non contiene elementi quando si specifica "*. *" – Samselvaprabu
$ File = Get-ChildItem -Path "V: \ MyFolder \\ *. *" -Filter CopyForbuild.bat -Recurse $ i = 1 Foreach ($ f in $ file) { Copy-Item $ f.FullName ("E: \ copyforbuild \" + $ f.BaseName + $ i +) $ i ++ "txt".} – Samselvaprabu