Copie vários arquivos listados em um arquivo de texto para uma nova pasta

2

Eu preciso copiar vários arquivos listados em um arquivo de texto para uma nova pasta, eu não sou um assistente de computador, então, por favor, seja gentil e simplifique:)

(os nomes dos arquivos são como 201609-ABCD.pdf)

Acho que abaixo disso, mas não sei como executá-lo.

{ Iterar sobre o arquivo de texto:

para / f "delims=" %% L em (foo.txt) Copie os arquivos:

copie "%% L" nova_pasta Concluído:

para / f "delims=" %% L em (foo.txt) copie "%% L" new_folder }

    
por Ahmed 04.12.2016 / 10:07

1 resposta

3
  • If Source Folder, Destination Folder, and the File List reside under the same path:
FileList:          D:\Files\FileList.txt
SourceFolder:      D:\Files\SourceFolder
DestinationFolder: D:\Files\DestinationFolder

E FileList contém apenas o nome e a extensão dos arquivos:

File1.txt
File2.pdf
File3.docx
File4.jpg

Então o seu script é:

@echo off
pushd D:\Files
for /f "tokens=* delims=" %%a in ('type FileList.txt') do xcopy /hrkvy ".\SourceFolder\%%a" ".\DestinationFolder"
popd
pause
  • If Source Folder, Destination Folder, and the File List reside under the same path:
FileList:          D:\Files\FileList.txt
SourceFolder:      D:\Files\SourceFolder
DestinationFolder: D:\Files\DestinationFolder

E FileList contém o caminho completo para os arquivos:

D:\Files\SourceFolder\File1.txt
D:\Files\SourceFolder\File2.jpg
D:\Files\SourceFolder\File3.docx

Então o seu script é:

@echo off
pushd D:\Files
for /f "tokens=* delims=" %%a in ('type FileList.txt') do xcopy /hrkvy "%%a" ".\DestinationFolder"
popd
pause
  • If Destination Folder, and the File List reside under the same path and SourceFolder is variable:
FileList:          D:\Files\FileList.txt
SourceFolder:      %SourceFolder%
DestinationFolder: D:\Files\DestinationFolder

E FileList contém apenas o nome e a extensão dos arquivos:

File1.txt
File2.jpg
File3.docx

Então o seu script é:

@echo off
pushd D:\Files
set /p SourceFolder=Enter the path of source folder and press 'Enter':
cls
for /f "tokens=* delims=" %%a in ('type FileList.txt') do xcopy /hrkvy "%SourceFolder%\%%a" ".\DestinationFolder"
popd
pause
  • If Destination Folder, and the File List reside under different paths:
FileList:          D:\Files\FileList.txt
DestinationFolder: C:\DestinationFolder

E FileList aponta para arquivos em locais diferentes:

D:\Files\File1.txt
C:\WorkFiles\File2.jpg
E:\File3.docx

Então o seu script é:

@echo off
for /f "tokens=* delims=" %%a in ('type "D:\Files\FileList.txt"') do xcopy /hrkvy "%%a" "C:\DestinationFolder"
pause
  • If Destination Folder, and the File List reside under different paths and SourceFolder is variable:
FileList:          D:\Files\FileList.txt
SourceFolder:      %SourceFolder% 
DestinationFolder: C:\DestinationFolder

E FileList contém apenas o nome e a extensão dos arquivos:

File1.txt
File2.jpg
File3.docx

Então o seu script é:

@echo off
set /p SourceFolder=Enter the path of source folder and press 'Enter':
cls
for /f "tokens=* delims=" %%a in ('type "D:\Files\FileList.txt"') do xcopy /hrkvy "%SourceFolder%\%%a" "C:\DestinationFolder"
pause

Atualização:

Para percorrer recursivamente nas subpastas do OneDrive para localizar arquivos de origem:

@echo off
pushd D:\Missing Papers
for /f "tokens=* delims=" %%a in ('type MissingPapers.txt"') do (
 for /f "tokens=* delims=" %%b in ('dir /b /s "%OneDrive%" ^| find /i "%%a"') do
  xcopy /hrkvy "%%b" ".\Searched out"
 )
)
pause
  • Cole-o em um arquivo .txt e renomeie sua extensão para .cmd e execute-a.

  • Se você não tiver permissão de leitura do diretório de origem ou de permissão de gravação no diretório de destino, execute o script como administrador.

  • Não se esqueça de substituir exemplos por caminhos de arquivos reais.

por 04.12.2016 / 10:56

Tags