Ik ben bezig met een batch script die een aantal bestanden zou moeten uploaden en downloaden.
tot nu toe heb ik het volgende:
Ik wil dus een onbekend aantal bestanden uploaden naar een tijdelijke directory. Als dit voltooid is moeten deze bestanden dmv een Rename opdracht verplaatst worden naar een andere map. (reden hiervoor is dat deze bestanden door een ander programma gefetched worden en de upload dus al voltooid moet zijn als de bestanden in die map komen.)
Deze rename gaat fout, volgens mij kan ik niet met wildcards werken? kan iemand dat wellicht bevestigen. Via google heb ik hier geen uitsluitsel over gekregen. renamen van een enkel bestand gaat wel goed.
Als ik alle bestanden stuk voor stuk moet renamen moet ik dus een lijst van de bestanden opvragen. Ik weet immers niet hoeveel bestanden het zijn, en ook niet hoe ze heten.
Ik zou een lijstje kunnen maken:
maar dan zou ik daarna dit bestand per regel moeten uitlezen en die regel dan mbv SET in een variable moeten stoppen. Ik heb het geprobeerd met verschillende commando's maar ik krijg het niet voor elkaar om 1 regel van een bestand zonder additionele opmaak/karakters uit te lezen.
Ander probleem is is dat ik dan waarschijnlijk een for loopje moet maken ofzo zodat ik elke regel uitlees en in een variabele zet. ik weet immers het aantal bestanden niet.
tot nu toe heb ik 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| @echo off set ftpuser=[knip] REM Wachtwoord FTP (let op! Dit wordt niet versleuteld opgeslagen!) set ftppass=[knip] REM ALTERNATIEF: REM set /p ftppass="Wat is het FTP-wachtwoord? >->>" set tempfolder1=upload set tf1filemask=*.* set tempfolder2=download set tf2filemask=*.* REM Stap 1. inloggen ftp server > #.ftp echo %ftpuser% >> #.ftp echo %ftppass% >> #.ftp echo trace >> #.ftp echo hash REM Stap 2. uploaden bestanden naar tijdelijke directory op ftp server >> #.ftp echo lcd %tempfolder1% >> #.ftp echo cd ftptempdir >> #.ftp echo mput %tf1filemask% >> #.ftp echo !del /q %tf1filemask% REM Stap 3. de zojuist geuploade bestanden verplaatsen naar een andere directory op de ftp server >> #.ftp echo ren *.* >> #.ftp echo dir\*.* REM Stap 4. downloaden andere bestanden van server. REM Na het downloaden worden de originelen verwijderd. >> #.ftp echo lcd %tempfolder2% >> #.ftp echo mget %tf2filemask% >> #.ftp echo mdel %tf2filemask% :execute REM Pas bij deze regel worden bovenstaande opdrachten uitgevoerd. ftp -i -s:#.ftp %ftpserver% :exit REM Afsluitprocedure. REM opgeslagen variabelen worden leeggemaakt zodat inloggegevens en dergelijke niet meer in het geheugen staan. set ftpserver= set ftpuser= set ftppass= set tempfolder1= set tf1filemask= set tempfolder2= set tf2filemask= del #.ftp |
Ik wil dus een onbekend aantal bestanden uploaden naar een tijdelijke directory. Als dit voltooid is moeten deze bestanden dmv een Rename opdracht verplaatst worden naar een andere map. (reden hiervoor is dat deze bestanden door een ander programma gefetched worden en de upload dus al voltooid moet zijn als de bestanden in die map komen.)
Deze rename gaat fout, volgens mij kan ik niet met wildcards werken? kan iemand dat wellicht bevestigen. Via google heb ik hier geen uitsluitsel over gekregen. renamen van een enkel bestand gaat wel goed.
Als ik alle bestanden stuk voor stuk moet renamen moet ik dus een lijst van de bestanden opvragen. Ik weet immers niet hoeveel bestanden het zijn, en ook niet hoe ze heten.
Ik zou een lijstje kunnen maken:
code:
1
| >> #.ftp echo !dir /b %tempfolder1% > lijst.txt |
maar dan zou ik daarna dit bestand per regel moeten uitlezen en die regel dan mbv SET in een variable moeten stoppen. Ik heb het geprobeerd met verschillende commando's maar ik krijg het niet voor elkaar om 1 regel van een bestand zonder additionele opmaak/karakters uit te lezen.
Ander probleem is is dat ik dan waarschijnlijk een for loopje moet maken ofzo zodat ik elke regel uitlees en in een variabele zet. ik weet immers het aantal bestanden niet.
Dimidium facti qui bene coepit habet: sapere aude.