Hallo allemaal,
Ik ben bezig met een scriptje wat automatisch bestanden van een FTP omgeving moet verwijderen. Ik heb even op internet gekeken om het wiel niet voor de zoveelste keer uit te vinden en en heb een script gevonden wat zou moeten doen wat ik wil.
Ik heb het echter lopen aanpassen en krijg het niet werkend zoals ik dat wil/verwacht. Misschien dat iemand hier zo kan zien wat ik fout doe. Ik moet zeggen dat ik niet veel meer met batch-files doe sinds Win2000 (overgegaan op KIX) maar soms kom je er niet omheen!
ik heb nu het volgende:
Hieruit krijg ik 3 bestanden:
FTPDIR.txt
FTPLIST.txt
En (hier gaat het mis) FTPDEL.txt
In deze laatste zou ik dan dus willen dat alle files ouder dan X dagen met een DEL ervoor. Dit zouden dan de bestanden zijn die verwijderd gaan worden.
Ik krijg alleen tijdens het draaien de volgende error en ik weet niet waarom.
Ik heb uiteraard al even lopen googlen maar mensen met dit probleem gebruiken over het algemeen de CALL verkeerd. Nu zal dat voor mij ook vast wel het geval zijn maar kan iemand dan misschien uitleggen waarom?
Ik ben bezig met een scriptje wat automatisch bestanden van een FTP omgeving moet verwijderen. Ik heb even op internet gekeken om het wiel niet voor de zoveelste keer uit te vinden en en heb een script gevonden wat zou moeten doen wat ik wil.
Ik heb het echter lopen aanpassen en krijg het niet werkend zoals ik dat wil/verwacht. Misschien dat iemand hier zo kan zien wat ik fout doe. Ik moet zeggen dat ik niet veel meer met batch-files doe sinds Win2000 (overgegaan op KIX) maar soms kom je er niet omheen!
ik heb nu het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| @echo off echo user USERNAME>ftpdir.txt echo PASSWORD>>ftpdir.txt echo cd anon_ftp >>ftpdir.txt echo cd incoming >>ftpdir.txt echo dir . ftplist.txt >>ftpdir.txt echo quit>>ftpdir.txt ftp -n -s:ftpdir.txt HOSTNAME echo user USERNAME>ftpdel.txt echo PASSWORD>>ftpdel.txt for /f "tokens=6,7,8,*" %%a in (ftplist.txt) do ( echo %%d ) echo %%c %%a %%b - %%d call :month %%a call :days %%c %month% %%b IF !days! GEQ 1 echo DEL %%d >>ftpdel.txt echo quit>>ftpdel.txt ftp -n -s:ftpdel.txt HOSTNAME PAUSE |
Hieruit krijg ik 3 bestanden:
FTPDIR.txt
code:
1
2
3
4
5
6
| user USERNAME PASSWORD cd anon_ftp cd incoming dir . ftplist.txt quit |
FTPLIST.txt
code:
1
2
3
4
| -rw-r--r-- 1 credittoolsinfo psacln 0 Jul 27 13:14 TESTFILE.txt -rw-r--r-- 1 credittoolsinfo psacln 0 Jul 27 13:14 TESTFILE2.txt -rw-r--r-- 1 credittoolsinfo psacln 1186 Jul 27 14:14 TESTFILE3.txt drwxr-xr-x 2 root psaserv 4096 Mar 4 2011 quotadir |
En (hier gaat het mis) FTPDEL.txt
code:
1
2
3
| user USERNAME PASSWORD quit |
In deze laatste zou ik dan dus willen dat alle files ouder dan X dagen met een DEL ervoor. Dit zouden dan de bestanden zijn die verwijderd gaan worden.
Ik krijg alleen tijdens het draaien de volgende error en ik weet niet waarom.
code:
1
2
3
4
5
6
7
| TESTFILE.txt TESTFILE2.txt TESTFILE3.txt quotadir %c %a %b - %d The system cannot find the batch label specified - month The system cannot find the batch label specified - days |
Ik heb uiteraard al even lopen googlen maar mensen met dit probleem gebruiken over het algemeen de CALL verkeerd. Nu zal dat voor mij ook vast wel het geval zijn maar kan iemand dan misschien uitleggen waarom?