How to copy a file to multiple folders using the command line?

조회 수: 4 (최근 30일)
viet le
viet le 2016년 12월 30일
댓글: Image Analyst 2017년 1월 2일
I have tried to copy a file test.txt to multiple directories with one command:
for ii=0:5:175
for jj=0:3:90
newdir=sprintf('phi=%2dtheta=%2d',ii,jj);
mkdir(fullfile(newdir))
end
end
for ii=0:5:175
for jj=0:3:90
source_dir=sprintf('G:/SYSTEM MATRIX - MCNP/phi%2dtheta%2d',ii,jj);
copyfile('test.txt','source_dir')
end
end
But I didn't succeed. Is there a way to do that in one command so I can copy a file or even a folder to multiple directories?

채택된 답변

Image Analyst
Image Analyst 2016년 12월 30일
What does "didn't succeed" mean? Did it finish with no errors but there were no files there? Or did it give an error message? copyfile() takes the destination folder as the second argument, not the source folder. As if that wasn't bad enough, you're passing the string 'sourcedir' instead of sourcedir so it's not even passing the string you want it to. To fix, get rid of the single quotes. And make sure all folders exist before you call copy file. exist(folder, 'dir') is useful for that purpose.
  댓글 수: 4
viet le
viet le 2017년 1월 2일
thanks. but I think it is different my problem. I have only one file test.txt and I have to copy and paste this file to 1000 folders different.
Image Analyst
Image Analyst 2017년 1월 2일
Create the destination folder in a loop
baseFileName = 'whatever.dat';
inputFullFileName = fullfile(inputFolder, baseFileName);
for k = 1 : 1000
outputFolder = sprintf('...........whatever
if ~exist(outputFolder, 'dir')
mkdir(outputFolder);
end
outputFullFileName = fullfile(outputFolder, baseFileName);
copyfile(inputFullFileName, outputFullFileName);
end

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by