Domanda

quindi ho un paio di fogli Excel che contengono le directory di tutti derivanti da una directory principale singolo. Esiste un modo per avere robocopy (o un programma simile) leggere il foglio di Excel come input per solo copiare i file selezionati?

Questo è il formato dei fogli di calcolo:

NMMC c6 31b5ac6c-1377-4a86-90a0-73c6335907e3.IMG
NMMC 2e 1da3d2ec-526f-479a-9c09-90cb2cfad0b6.IMG
NMMC 8a f77168ad-2f35-490c-a2a8-25e9fa4ac0ea.IMG
NMMC 2f fc2162f8-7548-4921-b722-5899cbe54641.IMG
NMMC fc 1fe09fcd-3861-4de8-8bfd-4510ffa8f29c.IMG
hcri001 1b  243161b4-eef0-4d5c-9e42-dcea6772afdd.IMG
hcri001 a7  7e60ba72-fb8f-4d65-ae34-92b034c10e2e.IMG
hcri001 84  7934584f-7bc8-4450-bf6d-da58ac2ebb1a.IMG
hcri001 1a  cda461ab-fe9d-4b4f-87bf-43dab9dd8644.IMG
hcri001 2b  4f2c02b6-31c6-4d8b-975e-591778bcdfef.IMG
ICPS    8a  2aca38a8-4133-4972-a03f-8c3c15654df3.IMG
ICPS    89  8338f897-76c0-4f6f-9ae5-3b4c7e8a302c.IMG
ICPS    30  d9dba300-6c14-4484-a147-bccb9dd15aa3.IMG

Vorrei copiare questi file in un altro file system con la stessa struttura (ad esempio, se ha origine immagine da C:\Apps\Test\Site\NMMC\c6\31b5ac6c-1377-4a86-90a0-73c6335907e3.IMG poi ho bisogno di copiare a Z:\Apps\FileSystem\NMMC\c6\31b5ac6c-1377-4a86-90a0-73c6335907e3.IMG

Questo è possibile fare?

Grazie

A cura di chiarire la confusione

È stato utile?

Soluzione 4

Ok, penso che ho praticamente l'ho. Ecco lo script prompt dei comandi che sto correndo:

for /f "delims=, tokens=1,2,3" %i in ( D:\foo.csv ) do xcopy /i /y "Z:\%i\%j\%k" "D:\%i\%j\%k"

Questo sta facendo esattamente quello che voglio, ma per ogni file che cerca di copiare un visualizzato il prompt mi ??chiede se si tratta di un file o una directory. C'è comunque da dire xcopy che sono tutti i file? Ho pensato che è quello che / ho fatto, ma che non sembra sopprimere le istruzioni.

Altri suggerimenti

Se si vuole evitare la scrittura di codice di Office Interop il mio suggerimento sarebbe quello di fare quanto segue:

In primo luogo, in Excel salvare i dati come file CSV nel percorso C: \ temp \ foo.csv. Questo creerà un file di dati che è simile al seguente:

NMMC,2e,1da3d2ec-526f-479a-9c09-90cb2cfad0b6.IMG
NMMC,8a,f77168ad-2f35-490c-a2a8-25e9fa4ac0ea.IMG
NMMC,2f,fc2162f8-7548-4921-b722-5899cbe54641.IMG
NMMC,fc,1fe09fcd-3861-4de8-8bfd-4510ffa8f29c.IMG

In seguito, aprire un prompt dei comandi e scrivere il seguente comando:

for /f "delims=, tokens=3" %i in ( c:\temp\foo.csv ) do echo %i

Questa uscita tutti i nomi dei file (e solo i nomi dei file). Una volta che si è soddisfatti questo sta lavorando quindi modificare il "echo% i" per essere quello comando xcopy che vuoi.

Creare un file batch o script di shell usando un editor di testo. Ad esempio, è possibile trovare / sostituire in modo che il file bat contiene qualcosa di simile:

copy c:\31b5ac6c-1377-4a86-90a0-73c6335907e3.IMG
copy c:\1da3d2ec-526f-479a-9c09-90cb2cfad0b6.IMG
copy c:\f77168ad-2f35-490c-a2a8-25e9fa4ac0ea.IMG
copy c:\fc2162f8-7548-4921-b722-5899cbe54641.IMG
copy c:\1fe09fcd-3861-4de8-8bfd-4510ffa8f29c.IMG

Si potrebbe provare a utilizzare di PowerShell COM Automation per leggere il file Excel e alimentare le linee in copia, xcopy o robocopy.

Non riesco a dare un esempio di come questo sarebbe stato fatto, in pratica, il mio PowerShell-fu non è abbastanza forte. Google potrebbe essere il tuo amico lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top