Save a file copy of a script from within that script...
15 ビュー (過去 30 日間)
古いコメントを表示
I'm interested in saving a copy of a script every time I run that script. I suppose that it's a kind of poor-man's version control. I'm varying the script a lot with time, and I'd like to ensure that in the future, when I look over the output from it, I can identify exactly which version I was using.
I have a very ugly way to do it right now, that uses the eval command and the ! syntax to call the DOS? copy command:
CopyName = ['"',ResultsDir,UniqueID,'.txt"'];
eval(['!copy MyScript.m ',CopyName])
I suppose that the ideal version would know the filename of the calling script, and not rely on the ! or eval syntax.
Any ideas?
Thanks, Justin
0 件のコメント
採用された回答
Paulo Silva
2011 年 1 月 27 日
This is how you can do a backup of your m file everytime you run it but matlab already does that for you, if you want to keep several backup files you must come up with a way to name them, maybe with a string with the date and hour or having a number that get incremented everytime your run the file.
FileNameAndLocation=[mfilename('fullpath')];
newbackup=sprintf('%sbackup.m',FileNameAndLocation);
currentfile=strcat(FileNameAndLocation, '.m');
copyfile(currentfile,newbackup);
With version number
Version='1';
FileNameAndLocation=[mfilename('fullpath')];
newbackup=sprintf('%sbackup%s.m',FileNameAndLocation,Version);
currentfile=strcat(FileNameAndLocation, '.m');
copyfile(currentfile,newbackup);
You can also check if the backup of a particular version already exists by doind
Version='1';
FileNameAndLocation=[mfilename('fullpath')];
newbackup=sprintf('%sbackup%s.m',FileNameAndLocation,Version);
A = exist(newbackup,'file')
if (A~=0)
warning('Backup already exists for the current version')
end
3 件のコメント
Jan
2011 年 3 月 9 日
@Oleg: COPYFILE is much faster than calling COPY in a DOS box: Opening the DOS box takes a lot of time already.
If the file is not saved before calling, the old version is used for processing also. Therefore the task needed by the OP is accomplished by Paulo's method: Save the script file, which processed the data.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!