(Mods: ik plaats dit hier omdat als je zoekt op "plaatjes opslaan site" je meestal alleen zoekt in Software Algemeen. Ik heb nog eens de FAQ doorgelezen en ik geloof dat ik met deze post geen regels breek.)
Je kent ze wel: de topics die vragen om programma's waarmee je plaatjes van websites kan opslaan, het liefst gratis. De programma's die je erin terugvindt zijn meestal óf erg ingewikkeld óf niet gratis, en da's tóch vervelend als je je copyright-vrije vakantiefoto's gemakkelijk op wilt slaan van de site van je schoonmoeder.
Nu reikt mijn kennis van C++ niet zo ver dat ik een normaal programma kan schrijven dat dat doet, en met ASP en VBScript kom ik ook al niet zo ver. Gelukkig spreek ik een paar woorden batch en ik heb op mijn vrije zondagavond een scriptje voor dit doeleinde in elkaar gedraaid.
Commentaar op het script is welkom, maar ik zet het hier voornamelijk neer omdat ik weet dat veel mensen een dergelijke functionaliteit zoeken. Mocht je zelf een beter en/of een gratiser programma hebben: post aub een link, ik hou mij aanbevolen (mijn schoonmoeder gaat vaak op vakantie).
Ik heb het script geschreven en alleen getest op Windows XP Pro NL. Het zou ook moeten werken met andere talen en Windows 2000.
Het script werkt alsvolgt:
1. kopieer de code die hieronder staat;
2. sla de code op als getp.cmd;
3. open het bestand met Notepad;
4. pas indien nodig regels 24, 25 en 26 aan (de variabelen);
5. open een command line interpreter console, oftewel een DOS-box;
6. geef het commando GETP CLEAN, dit wist de JPG-bestanden uit je map Tijdelijke Internet-bestanden;
7. ga naar de site van je schoonmoeder waar je vakantiefoto's op staan en laat de pagina met foto's helemaal laden;
8. optioneel: geef het commando GETP SHOW, dit laat zien welke foto's in aanmerking komen om lokaal te worden opgeslagen;
9. geef het commando GETP <mapnaam>, waar <mapnaam> de naam van de te maken directory in je foto-archief is, de foto's worden nu vanuit je cache verplaatst naar deze nieuwe map in je archief.
Tip van oma: je kan in snelkoppelingen command line parameters meegeven, dus je kan icoontjes maken die wijzen naar GETP CLEAN en GETP als je wilt (het script vraagt dan in een DOS-box om een nieuwe naam) en eventueel GETP SHOW.
Tweede tip van oma: kopieer van de site van je schoonmoeder de naam van de fotoserie. Die kan je plakken in de DOS-box door daarin te klikken met je rechter muisknop.

Hier is het script, veel plezier ermee.
Disclaimer: gebruik van dit script is op eigen risico.
Je kent ze wel: de topics die vragen om programma's waarmee je plaatjes van websites kan opslaan, het liefst gratis. De programma's die je erin terugvindt zijn meestal óf erg ingewikkeld óf niet gratis, en da's tóch vervelend als je je copyright-vrije vakantiefoto's gemakkelijk op wilt slaan van de site van je schoonmoeder.
Nu reikt mijn kennis van C++ niet zo ver dat ik een normaal programma kan schrijven dat dat doet, en met ASP en VBScript kom ik ook al niet zo ver. Gelukkig spreek ik een paar woorden batch en ik heb op mijn vrije zondagavond een scriptje voor dit doeleinde in elkaar gedraaid.
Commentaar op het script is welkom, maar ik zet het hier voornamelijk neer omdat ik weet dat veel mensen een dergelijke functionaliteit zoeken. Mocht je zelf een beter en/of een gratiser programma hebben: post aub een link, ik hou mij aanbevolen (mijn schoonmoeder gaat vaak op vakantie).
Ik heb het script geschreven en alleen getest op Windows XP Pro NL. Het zou ook moeten werken met andere talen en Windows 2000.
Het script werkt alsvolgt:
1. kopieer de code die hieronder staat;
2. sla de code op als getp.cmd;
3. open het bestand met Notepad;
4. pas indien nodig regels 24, 25 en 26 aan (de variabelen);
5. open een command line interpreter console, oftewel een DOS-box;
6. geef het commando GETP CLEAN, dit wist de JPG-bestanden uit je map Tijdelijke Internet-bestanden;
7. ga naar de site van je schoonmoeder waar je vakantiefoto's op staan en laat de pagina met foto's helemaal laden;
8. optioneel: geef het commando GETP SHOW, dit laat zien welke foto's in aanmerking komen om lokaal te worden opgeslagen;
9. geef het commando GETP <mapnaam>, waar <mapnaam> de naam van de te maken directory in je foto-archief is, de foto's worden nu vanuit je cache verplaatst naar deze nieuwe map in je archief.
Tip van oma: je kan in snelkoppelingen command line parameters meegeven, dus je kan icoontjes maken die wijzen naar GETP CLEAN en GETP als je wilt (het script vraagt dan in een DOS-box om een nieuwe naam) en eventueel GETP SHOW.
Tweede tip van oma: kopieer van de site van je schoonmoeder de naam van de fotoserie. Die kan je plakken in de DOS-box door daarin te klikken met je rechter muisknop.

Hier is het script, veel plezier ermee.
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| @echo off
:: getp, saves pictures from websites.
:: By Vilenin.
:: Usage:
:: getp [directory name] -- copies pictures from cache to [directory name]
:: getp clear -- clears cache
:: getp show -- shows files and their sizes in cache
:: Set variables below
:: TempInetFiles = where Internet Explorer keeps your Temporary Internet Files
:: Archive = where your collection is stored (for example: c:\my pictures\)
:: threshold = only download pictures this amount of kB's or over
:: In TempInetFiles and Archive location, please mind the ending backslash.
::
:: Example variable set (these settings should work just fine):
:: =====================================================================
:: set TempInetFiles=C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5\
:: set Archive=C:\Documents and Settings\%username%\Bureaublad\My holiday photos\
:: set threshold=15
:: =====================================================================
:: ==================================================SET OF VARIABLES
set TempInetFiles=C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5\
set Archive=C:\Documents and Settings\%username%\Bureaublad\My holiday photos\
set threshold=15
:: ==================================================END OF VARIABLES
:: Convert threshold to bytes
set /a threshold=1024*%threshold%
:: Did the user enter a Target Directory name as an argument?
:: If so, glue space separated input together.
if [%1]==[] goto :AskName
if not [%1]==[] set TargetDir=%1
if not [%2]==[] set TargetDir=%TargetDir% %2
if not [%3]==[] set TargetDir=%TargetDir% %3
if not [%4]==[] set TargetDir=%TargetDir% %4
if not [%5]==[] set TargetDir=%TargetDir% %5
if not [%6]==[] set TargetDir=%TargetDir% %6
if not [%7]==[] set TargetDir=%TargetDir% %7
if not [%8]==[] set TargetDir=%TargetDir% %8
if not [%9]==[] set TargetDir=%TargetDir% %9
:: Set special arguments
if [%1]==[clear] goto :clear
:: Remove percent signs from files. Using weird characters in file names should be punishable by law.
for /F "delims=*" %%I in ('cd') do set StartDir="%%I"
set sdstat=%StartDir:~1,2%
set sdpad=%StartDir:~3,-1%
for /F "delims=*" %%I in ('dir "%TempInetFiles%" /a:d /b') do call :KillPercent "%TempInetFiles%%%I"
%sdstat%
cd "%sdpad%"
:: Set more special arguments
if [%1]==[show] goto :show
:: Ask for a different folder name if the one specified exists
:ChkName
if not exist "%Archive%%TargetDir%" goto :MkTargetDir
echo Deze map bestaat al.
:AskName
set /p TargetDir=Hoe moet de nieuwe map heten?
goto :ChkName
:: Make new folder
:MkTargetDir
mkdir "%Archive%%TargetDir%"
:: Move big enough files
for /F "delims=*" %%I in ('dir "%TempInetFiles%*.jpg" /s /b') do call :MovePic %%~zI "%%I" "%%~nxI" "%Archive%" "%TargetDir%"
goto :eof
:: ========Subroutines
:MovePic
:: Move the files that are large enough to their new location
set size=%1
if %size% lss %threshold% goto :eof
set ofn=%2
set nfn="%3"
set Archive=%4
set TargetDir=%5
set nfn=%nfn:[1]=%
move "%ofn:~1,-1%" "%Archive:~1,-1%%TargetDir:~1,-1%\%nfn:~2,-2%"
goto :eof
:show
:: Only show the files which would be copied
for /F "delims=*" %%I in ('dir "%TempInetFiles%*.jpg" /s /b') do call :DoShow "%%~nxI" %%~zI %threshold%
goto :eof
:DoShow
set size=%2
set threshold=%3
if %size% lss %threshold% goto :eof
set fn=%1
set fn=%fn:[1]=%
set size=%2
set /a size=%size%/1024
set threshold=%3
echo %fn:~1,-1% (%size% kB)
goto :eof
:clear
:: delete all pictures in the temporary internet files directory
del "%TempInetFiles%*.jpg" /s /q>nul
echo.
echo De bestanden zijn verwijderd.
goto :eof
:KillPercent
set curdir=%1
set stat=%curdir:~1,2%
set pad="%curdir:~3,-1%"
%stat%
cd "%curdir:~3,-1%"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
goto :eof |
Disclaimer: gebruik van dit script is op eigen risico.
[ Voor 30% gewijzigd door CmdrKeen op 26-04-2004 22:13 . Reden: Plaatje toegevoegd. ]
Bloed, zweet & koffie