Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
Hey there! I'd like to copy a file to all contained subfolders. The structure looks something like this: MAIN_FOLDER (contains the file that is supposed to be copied) : : - Subfolder1 - Subfolder2 - Subfolder3 I thought about using a FOR-loop but that didn't work out yet. Would really appreciate your help here! Thanks
Den tisdag 12 maj 2015 kl. 15:56:27 UTC+2 skrev Kai Heckel: > Hey there! > > I'd like to copy a file to all contained subfolders. > The structure looks something like this: > > MAIN_FOLDER (contains the file that is supposed to be copied) > : > : > - Subfolder1 > - Subfolder2 > - Subfolder3 > > I thought about using a FOR-loop but that didn't work out yet. > > Would really appreciate your help here! > > Thanks You could use something like subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs) for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i]
Mats Löfdahl writes: > You could use something like > > subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs) > for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i] Or, for an IDL solution, FILE_COPY. ;-) Cheers, David -- David Fanning, Ph.D. Fanning Software Consulting, Inc. Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Am Dienstag, 12. Mai 2015 15:56:27 UTC+2 schrieb Kai Heckel: > Hey there! > > I'd like to copy a file to all contained subfolders. > The structure looks something like this: > > MAIN_FOLDER (contains the file that is supposed to be copied) > : > : > - Subfolder1 > - Subfolder2 > - Subfolder3 > > I thought about using a FOR-loop but that didn't work out yet. > > Would really appreciate your help here! > > Thanks Yep I tried the FILE_COPY function but it didn't work... e.g. I tried this line: FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs -> file_dirs is a variable that contains all subfolders
Den tisdag 12 maj 2015 kl. 16:33:13 UTC+2 skrev David Fanning: > Mats Löfdahl writes: > >> You could use something like >> >> subfolders=file_search('MAIN_FOLDER/Subfolder?',count=Nfolde rs) >> for i=0,Nfolders-1 do spawn,'cp '+filename+' '+subfolders[i] > > Or, for an IDL solution, FILE_COPY. ;-) Who said anything about IDL? :o)
Am Dienstag, 12. Mai 2015 15:56:27 UTC+2 schrieb Kai Heckel: > Hey there! > > I'd like to copy a file to all contained subfolders. > The structure looks something like this: > > MAIN_FOLDER (contains the file that is supposed to be copied) > : > : > - Subfolder1 > - Subfolder2 > - Subfolder3 > > I thought about using a FOR-loop but that didn't work out yet. > > Would really appreciate your help here! > > Thanks Thought this was an IDL forum :D But anyway thanks Mats!
Kai Heckel writes: > Yep I tried the FILE_COPY function but it didn't work... > e.g. I tried this line: > > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs > > -> file_dirs is a variable that contains all subfolders Yeah, the documentation is probably leading you astray. I'd use it in a loop. Mats will show you how now that he is in the right frame of reference. ;-) Cheers, David -- David Fanning, Ph.D. Fanning Software Consulting, Inc. Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ Sepore ma de ni thue. ("Perhaps thou speakest truth.")
Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: > Kai Heckel writes: > >> Yep I tried the FILE_COPY function but it didn't work... >> e.g. I tried this line: >> >> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >> >> -> file_dirs is a variable that contains all subfolders > > Yeah, the documentation is probably leading you astray. I'd use it in a > loop. Mats will show you how now that he is in the right frame of > reference. ;-) > > Cheers, > > David > -- > David Fanning, Ph.D. > Fanning Software Consulting, Inc. > Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ > Sepore ma de ni thue. ("Perhaps thou speakest truth.") So I tried this: FOR i=0, N_ELEMENTS(file_dirs)-1 do spawn, 'cp ', 'myfile', file_dirs[i] ENDFOR ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;)
Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel: > Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: >> Kai Heckel writes: >> >>> Yep I tried the FILE_COPY function but it didn't work... >>> e.g. I tried this line: >>> >>> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >>> >>> -> file_dirs is a variable that contains all subfolders >> >> Yeah, the documentation is probably leading you astray. I'd use it in a >> loop. Mats will show you how now that he is in the right frame of >> reference. ;-) >> >> Cheers, >> >> David >> -- >> David Fanning, Ph.D. >> Fanning Software Consulting, Inc. >> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ >> Sepore ma de ni thue. ("Perhaps thou speakest truth.") > > So I tried this: > > FOR i=0, N_ELEMENTS(file_dirs)-1 do > spawn, 'cp ', 'myfile', file_dirs[i] > ENDFOR > > ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;) The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes. Doing something like this in the loop makes it easier to see that you get the command string right: cmd= 'cp ' + myfile + ' ' + file_dirs[i] print, cmd spawn,cmd
Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl: > Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel: >> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: >>> Kai Heckel writes: >>> >>>> Yep I tried the FILE_COPY function but it didn't work... >>>> e.g. I tried this line: >>>> >>>> FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >>>> >>>> -> file_dirs is a variable that contains all subfolders >>> >>> Yeah, the documentation is probably leading you astray. I'd use it in a >>> loop. Mats will show you how now that he is in the right frame of >>> reference. ;-) >>> >>> Cheers, >>> >>> David >>> -- >>> David Fanning, Ph.D. >>> Fanning Software Consulting, Inc. >>> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ >>> Sepore ma de ni thue. ("Perhaps thou speakest truth.") >> >> So I tried this: >> >> FOR i=0, N_ELEMENTS(file_dirs)-1 do >> spawn, 'cp ', 'myfile', file_dirs[i] >> ENDFOR >> >> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;) > > The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes. > > Doing something like this in the loop makes it easier to see that you get the command string right: > > cmd= 'cp ' + myfile + ' ' + file_dirs[i] > print, cmd > spawn,cmd Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code? file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY) myfile = DIALOG_PICKFILE(Title='Select myfile: ') FOR i=0, N_ELEMENTS(file_dirs)-1 do begin cmd = 'cp ' + myfile + '' + file_dirs[k] print, cmd spawn, cmd ENDFOR
Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel: > Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl: >> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel: >>> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: >>>> Kai Heckel writes: >>>> >>>> > Yep I tried the FILE_COPY function but it didn't work... >>>> > e.g. I tried this line: >>>> > >>>> > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >>>> > >>>> > -> file_dirs is a variable that contains all subfolders >>>> >>>> Yeah, the documentation is probably leading you astray. I'd use it in a >>>> loop. Mats will show you how now that he is in the right frame of >>>> reference. ;-) >>>> >>>> Cheers, >>>> >>>> David >>>> -- >>>> David Fanning, Ph.D. >>>> Fanning Software Consulting, Inc. >>>> Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ >>>> Sepore ma de ni thue. ("Perhaps thou speakest truth.") >>> >>> So I tried this: >>> >>> FOR i=0, N_ELEMENTS(file_dirs)-1 do >>> spawn, 'cp ', 'myfile', file_dirs[i] >>> ENDFOR >>> >>> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;) >> >> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes. >> >> Doing something like this in the loop makes it easier to see that you get the command string right: >> >> cmd= 'cp ' + myfile + ' ' + file_dirs[i] >> print, cmd >> spawn,cmd > > Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code? > > file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY) > myfile = DIALOG_PICKFILE(Title='Select myfile: ') > FOR i=0, N_ELEMENTS(file_dirs)-1 do begin > cmd = 'cp ' + myfile + '' + file_dirs[k] > print, cmd > spawn, cmd > ENDFOR You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k.
Am Mittwoch, 13. Mai 2015 11:29:56 UTC+2 schrieb Mats Löfdahl: > Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel: >> Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl: >>> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel: >>>> Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: >>>> > Kai Heckel writes: >>>> > >>>> > > Yep I tried the FILE_COPY function but it didn't work... >>>> > > e.g. I tried this line: >>>> > > >>>> > > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >>>> > > >>>> > > -> file_dirs is a variable that contains all subfolders >>>> > >>>> > Yeah, the documentation is probably leading you astray. I'd use it in a >>>> > loop. Mats will show you how now that he is in the right frame of >>>> > reference. ;-) >>>> > >>>> > Cheers, >>>> > >>>> > David >>>> > -- >>>> > David Fanning, Ph.D. >>>> > Fanning Software Consulting, Inc. >>>> > Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ >>>> > Sepore ma de ni thue. ("Perhaps thou speakest truth.") >>>> >>>> So I tried this: >>>> >>>> FOR i=0, N_ELEMENTS(file_dirs)-1 do >>>> spawn, 'cp ', 'myfile', file_dirs[i] >>>> ENDFOR >>>> >>>> ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;) >>> >>> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes. >>> >>> Doing something like this in the loop makes it easier to see that you get the command string right: >>> >>> cmd= 'cp ' + myfile + ' ' + file_dirs[i] >>> print, cmd >>> spawn,cmd >> >> Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code? >> >> file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY) >> myfile = DIALOG_PICKFILE(Title='Select myfile: ') >> FOR i=0, N_ELEMENTS(file_dirs)-1 do begin >> cmd = 'cp ' + myfile + '' + file_dirs[k] >> print, cmd >> spawn, cmd >> ENDFOR > > You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k. Oh I forgot to change that but if I do, it doesn't change anything...
Am Mittwoch, 13. Mai 2015 12:30:59 UTC+2 schrieb Kai Heckel: > Am Mittwoch, 13. Mai 2015 11:29:56 UTC+2 schrieb Mats Löfdahl: >> Den onsdag 13 maj 2015 kl. 11:20:00 UTC+2 skrev Kai Heckel: >>> Am Mittwoch, 13. Mai 2015 10:22:12 UTC+2 schrieb Mats Löfdahl: >>>> Den onsdag 13 maj 2015 kl. 09:04:18 UTC+2 skrev Kai Heckel: >>>> > Am Dienstag, 12. Mai 2015 16:57:05 UTC+2 schrieb David Fanning: >>>> > > Kai Heckel writes: >>>> > > >>>> > > > Yep I tried the FILE_COPY function but it didn't work... >>>> > > > e.g. I tried this line: >>>> > > > >>>> > > > FILE_COPY, DIALOG_PICKFILE(Title='Select file: '), file_dirs >>>> > > > >>>> > > > -> file_dirs is a variable that contains all subfolders >>>> > > >>>> > > Yeah, the documentation is probably leading you astray. I'd use it in a >>>> > > loop. Mats will show you how now that he is in the right frame of >>>> > > reference. ;-) >>>> > > >>>> > > Cheers, >>>> > > >>>> > > David >>>> > > -- >>>> > > David Fanning, Ph.D. >>>> > > Fanning Software Consulting, Inc. >>>> > > Coyote's Guide to IDL Programming: http://www.idlcoyote.com/ >>>> > > Sepore ma de ni thue. ("Perhaps thou speakest truth.") >>>> > >>>> > So I tried this: >>>> > >>>> > FOR i=0, N_ELEMENTS(file_dirs)-1 do >>>> > spawn, 'cp ', 'myfile', file_dirs[i] >>>> > ENDFOR >>>> > >>>> > ...somehow this won't work. This maybe an absolute newbie thing but I acutally am new to IDL and programming in general. ;) >>>> >>>> The spawn command wants a single string so you should concatenate the parts of the command you want to execute. Also, if myfile is a variable containing the file name, it should not be in quotes. >>>> >>>> Doing something like this in the loop makes it easier to see that you get the command string right: >>>> >>>> cmd= 'cp ' + myfile + ' ' + file_dirs[i] >>>> print, cmd >>>> spawn,cmd >>> >>> Using that and other structures, IDL always prints that "FILE_DIRS with K is out of range.". "file_dirs" includes the full path to every folder that I want the data to be copied to. Still something wrong with the code? >>> >>> file_dirs = FILE_SEARCH(mydir, /TEST_DIRECTORY) >>> myfile = DIALOG_PICKFILE(Title='Select myfile: ') >>> FOR i=0, N_ELEMENTS(file_dirs)-1 do begin >>> cmd = 'cp ' + myfile + '' + file_dirs[k] >>> print, cmd >>> spawn, cmd >>> ENDFOR >> >> You may want to use the loop variable when indexing file_dirs, rather than the undefined (?) variable k. > > Oh I forgot to change that but if I do, it doesn't change anything... Ok everyone, I got it.... That's a stupid one ;) I executed those lines by marking it and executing it with "Shift + F8". After compiling it it worked out well. Thanks for your help anyway!