Hoi, ik ben bezig met een script die onder andere bestanden van de ene directory naar de andere directory moet verplaatsen. Nou kan ik dat doen met een system command, maar dat vind ik niet zo mooi. Mooier is volgens mij om een File::Move command te gebruiken, maar daar heb je volgens mij een move.pl bestand voor nodig en die heb ik dus niet en na uitvoerig gezocht te hebben kan ik die ook niet vinden. Weet iemand of 1: mijn bewering klopt dat het met file::move kan en waar ik dit soort .pl bestanden kan krijgen?
Verwijderd
Met rename kun je toch ook bestanden verplaatsen?
code:
1
| rename('bestandsnaam', 'naarbestandsnaam'); |
http://www.perldoc.com/perl5.6.1/pod/func/rename.html
Je moet wel absolute paden gebruiken en checken of de file bestaat met (-e filepad) of (-f filepad)
Het 2e argument is dus ook een filepad, geen directorypad
Je moet wel absolute paden gebruiken en checken of de file bestaat met (-e filepad) of (-f filepad)
Het 2e argument is dus ook een filepad, geen directorypad
[ Voor 0% gewijzigd door Juup op 27-09-2002 10:11 . Reden: added som stuff ]
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
File::Move zou je moeten kunnen vinden op www.cpan.org als het bestaat.
File::Move staat er niet tussen. Op Google vond ik iets over File::Move van Bugzilla. Maar dat is dus blijkbaar geen algemene tool. Dan moet ik het maar op een iets mindere nette manier doen via replace of wel delete. Of een system opdracht. Thank anyway
Kun je een voorbeeld geven?Juup schreef op 27 september 2002 @ 10:09:
http://www.perldoc.com/perl5.6.1/pod/func/rename.html
Je moet wel absolute paden gebruiken en checken of de file bestaat met (-e filepad) of (-f filepad)
Het 2e argument is dus ook een filepad, geen directorypad
Ik heb nu:
code:
1
| rename("c:\\aaa\\$winkelnaam\\*.*","c:\\aaa\\$winkelnaam\\$tijd"); |
$winkelnaam en $tijd worden wel goed gevuld, hij maakt ook netjes een directorie aan (met mkdir) alleen verder kom ik dus niet.
Vanzelfsprekend (!) kun je geen wildcards gebruiken in rename().
Probeer eens
Probeer eens
Perl:
1
| rename ("c:\\autoexec.bat", "c:\\temp\\autoexec.bat") || print "That didn't work: $!"; |
[ Voor 0% gewijzigd door Juup op 28-09-2002 10:55 . Reden: / -> \\ ]
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Jaaap: ik heb inmiddels geleerd dat wildcards niet werken
maareh, ik heb dus proberen te zoeken (het hele weekend ongeveer) hoe ik dan alle files in een directory kan moven. Move is trouwens wel gewoon een functie van File::Copy heb ik gezien. Heb jij een idee toevallig?
Het vervelende van een rename is dat het alleen de pad-informatie in de FAT aanpast (simpel gezegd) waardoor het dus niet mogelijk is om bestanden tussen filesystems te verplaatsen. File::Move maakt in zo'n geval waarschijnlijk een kopie (net als het mv-commando onder UNIX).
Of Rename onder ActivePerl voor Windows wel tussen 'schijfletters' werkt, zou ik niet weten (ik vermoed eigenlijk van wel), maar dat was geloof ik nu het probleem al niet meer.
Het lezen van de bestanden in een directory gaat met readdir. Voor zover ik weet is er geen standaardmethode om een bepaalde operatie op alle files in een directory uit te voeren (al dan niet met inbegrip van onderliggende directories); dat vind ik altijd wel jammer van Perl. Je zult er dus zelf een lusje voor moeten schrijven; voorbeeldcode staat wel in de perlfunc man-page onder readdir.
Of Rename onder ActivePerl voor Windows wel tussen 'schijfletters' werkt, zou ik niet weten (ik vermoed eigenlijk van wel), maar dat was geloof ik nu het probleem al niet meer.
Het lezen van de bestanden in een directory gaat met readdir. Voor zover ik weet is er geen standaardmethode om een bepaalde operatie op alle files in een directory uit te voeren (al dan niet met inbegrip van onderliggende directories); dat vind ik altijd wel jammer van Perl. Je zult er dus zelf een lusje voor moeten schrijven; voorbeeldcode staat wel in de perlfunc man-page onder readdir.
Pagina: 1