Newsgroup: it.comp.os.win.xp
Titolo: Copia multipla dal prompt

Con Copy o XCopy volevo copiare più file su un'altra cartella o una unità
esterna. Pensavo che me lo permettesse impostando più file di origine
separati da spazio o dal segno "+" ma in pratica funziona diversamente da
quanto mi aspettavo.
Io avrei bisogna di una cosa del genere per copiare 3 file nella root del
disco F:
COPY file1 file2 file3 F:\
--
Ciao, Sandrobi
------------------
Se la tua email è fasulla, ti invito a leggere qui:
http://wiki.news.nic.it/AntiSpam

 COPY file1 file2 file3 F:\
Le copie multiple si attivano se ci sono wildcard nel nome del file.
Nel caso in esempio dovresti fare
copy file? f:\
?=1 qualsiasi carattere
*= numero qualsiasi di qualsiasi carattere
A questo punto devi vedere tu se riesci a giocartela con le wildcard...
oppure puoi fare una cosina un po' più sofisticata: preparare un "file
di configurazione" dove inserisci i nomi dei file, un per riga, ad
esempio nel file origine.txt, e poi lanci questo comando:
for /F %I IN (origine.txt) DO copy "%I" F:\
Le virgolette servono in caso di nomi con spazi. Questo comando legge
il file origine.txt, e copia i nomi di file ivi contenuti nella
directory F:\. Se vuoi usare il comando in un file batch devi
raddoppiare i %, così:
for /F %%I IN (origine.txt) DO copy "%%I", F:\
Ciao,
Panathos
ciao,
Panathos

 wrote in message 
news:44c0be27$0$32144$4faf...@reader1.news.tin.it...


 nella root del disco F:  COPY file1 file2 file3 F:\
[1] piu sotto una cosa abbastanza complessa che ho fatto
un giorno di noia :
Set oShell = CreateObject("Wscript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "C:\WINDOWS\TEMP\Test.txt", "c:\"
fs.CopyFile "c:\documenti\test2.txt", "c:\"
fs.CopyFile "c:\doc\test3.txt", "c:\"
' ecc
'Copia incolla su notepad e salva con estensione .vbs
'tutti i file (*.*)  poi ci clicchi sopra. (per esempio Test.vbs)
'se ti da' errore disattiva l'antivirus
CopyFile Method
Applies To: FileSystemObject Object
Copies one or more files from one location to another.
object.CopyFile ( source, destination[, overwrite] )
source
Required. Character string file specification, which can include wildcard
characters, for one or more files to be copied.
destination
Required. Character string destination where the file or files from source
are to be copied. Wildcard characters are not allowed.
overwrite
Optional. Boolean value that indicates if existing files are to be overwritten. If true, files are overwritten; if
false, they are not. The default is true. Note that CopyFile will fail if destination has the read-only attribute set,
regardless of the value of overwrite.
'[1]
' Se i *.log sono tanti ci vogliono alcuni minuti
' ASPETTARE fino a che non spunta il msgbox fatto
' Copia TUTTI  i *.log del Hard Disk in "C:\BackupsTest\"
' mantenendo ANCHE la struttura originale delle cartelle di provenienza
' cosi in caso anche ci fossero  due log con lo stesso nome
' si piu' risalire all'origine, ho messo un on error resume next
' perche' non ho avuto modo di testarlo a fondo e se per caso un
' log NON e' (per qualsiasi motivo) copiabile lo script NON si interrompe.
' Si puo' fare con TUTTI i file basta cambiare *.log con quello che si vuole
On Error Resume Next
Const OPEN_FILE_FOR_READING = 1
filename = "install.log"
Set oShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set newf = fso.createtextfile(filename)
'newf.WriteLine  "start: " & now
sCmd = "%comspec% /c dir c:\*.log /s /b > c:\TxtList.txt"
oShell.run sCmd,0,1
sText = fso.opentextfile("c:\TxtList.txt").readall
'newf.WriteLine  "finish: " & now
newf.WriteLine  sText
newf.Close
oShell.run"install.log"
strOFile ="install.log"
 If Not fso.FolderExists("C:\BackupsTest") Then
  fso.CreateFolder("C:\BackupsTest")
  End if
sp = "C:\BackupsTest\"
Set objInputFile = fso.OpenTextFile(strOFile, 1)
inputData = Split(objInputFile.ReadAll, vbNewline)
For Each arg In inputData
   ' WScript.Echo Arg
  i2 = InStrRev(Arg, "\")
   'msgbox i2
  Arg2 = Left(Arg, (i2 - 1))
  'msgbox arg2
  strTestString = arg2
 iPos = InStr(iPos + 1, strTestString, "\")
        iCnt = iCnt + 1
    strFirst = Left(strTestString, iPos)
    strSecond = Mid(strTestString, iPos + 1)
   'MsgBox strTestString
   ' MsgBox strFirst
   ' MsgBox strSecond  'bingo
     WScript.Sleep 100
strSecond = strSecond &"\"
  ' Msgbox sp&strSecond
   If Not (fso.FolderExists(sp&strSecond))  Then
      ' fso.CreateFolder(sp&strSecond)
      Set fo = CreateFolderPath(sp&strSecond)
    End if
'msgbox arg&sp&strSecond
    FSO.CopyFile arg, sp&strSecond, True
    next
FSO.CopyFile "Install.log", sp, True
Msgbox"fatto"
Set MyFile = fso.GetFile("c:\TxtList.txt")
MyFile.Delete
Function CreateFolderPath(Path)
    If not fso.FolderExists(fso.GetParentFolderName(Path)) Then
      Call CreateFolderPath(fso.GetParentFolderName(Path))
    End If
    Set CreateFolderPath = fso.CreateFolder(Path)
End Function
--
Fosco