Goedemiddag,
ik ben bezig met een haast klus
Voor een Windows NT machine

De taak is zeer eenvoudig: kopieer mpg files en de bijbehorende xml files van een source directory naar en destination directory en verwijder de gekopieerde file daarna van de source directory. De enige voorwaarde is dat de XML moet bestaan voordat de MPG kan worden gekopieerd.
Het onderstaande jscript wordt op de command line aangeroepen met cscript scriptname.js
Het principe werkt maar in bovenstaande code (zonder de try/catch) loop ik tegen een probleem aan als ik probeer een file te verwijderen die om een of andere reden gelock'ed is. Het script crashed; geen probleem, een try/catch biedt de oplossing (althans, dat verwachtte ik). Na de implementatie van de try/catch rondom een delete krijg ik echter de volgende foutmelding
Advies is welkom en als altijd bij voorbaat dank voor het meedenken.
PS
Zoeken op het web heeft nog geen resultaat opgeleverd voor de specifieke omstandigheden (run jscript in de dosbox)
PPS
Ik ontwikkel op een Win7 platform omdat ik op dit moment geen toegang heb tot de NT machine; het probleem openbaart zich dus momenteel op de Win7 machine maar ik vermoed dat hetzelfde zal gebeuren op de NT machine.
PPPS
De haastklus is geen aanduiding dat ik van jullie gisteren een antwoord verwachtte
Alleen dat mijn baas zit te wachten op een oplossing die gisteren klaar was
ik ben bezig met een haast klus
De taak is zeer eenvoudig: kopieer mpg files en de bijbehorende xml files van een source directory naar en destination directory en verwijder de gekopieerde file daarna van de source directory. De enige voorwaarde is dat de XML moet bestaan voordat de MPG kan worden gekopieerd.
Het onderstaande jscript wordt op de command line aangeroepen met cscript scriptname.js
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
| /* users can change this
make sure that paths are terminated with a backslash (actually a double one) as shown
*/
/* source directory; e.g. d:\\externaldisk\\ */
var dirsrc = "src\\";
/* destination directory; e.g. d:\\data\\shared\\ */
var dirdst = "dst\\";
/*
This script moves files from the source to the destination by using copy and delete.
This assures that an existing handle on a file in the destination directory does not get corrupted.
*/
/* do not change below this line if you don't know what you're doing */
var fso = new ActiveXObject("Scripting.FileSystemObject");
//var folderTemp = WScript.Arguments.Item(0);
var folderTemp = dirsrc;
var folder = folderTemp.replace("\\", "\\\\");
var e = new Enumerator(fso.GetFolder(folder).files);
for (e.moveFirst(); ! e.atEnd(); e.moveNext()) {
var file = e.item();
var xmlsrcfile;
var extension = fso.GetExtensionName(file);
if (extension == "mpg")
{
xmlsrcfile = fso.GetParentFolderName(file) + "\\" + fso.GetBaseName(file) + ".xml";
if(fso.FileExists(xmlsrcfile))
{
WScript.echo("copy " + file + " to " + dirdst);
fso.CopyFile(file, dirdst, true);
try
{
WScript.echo("delete " + file);
fso.DeleteFile(file, true);
}
catch(e)
{
}
WScript.echo("copy " + xmlsrcfile + " to " + dirdst);
fso.CopyFile(xmlsrcfile, dirdst, true);
WScript.echo("delete " + xmlsrcfile);
fso.DeleteFile(xmlsrcfile, true);
}
else
{
WScript.echo("skip " + file + " ('" + xmlsrcfile + "' missing)");
}
}
} |
Het principe werkt maar in bovenstaande code (zonder de try/catch) loop ik tegen een probleem aan als ik probeer een file te verwijderen die om een of andere reden gelock'ed is. Het script crashed; geen probleem, een try/catch biedt de oplossing (althans, dat verwachtte ik). Na de implementatie van de try/catch rondom een delete krijg ik echter de volgende foutmelding
code:
1
| Microsoft JScript runtime error: Object doesn't support this property or method |
Advies is welkom en als altijd bij voorbaat dank voor het meedenken.
PS
Zoeken op het web heeft nog geen resultaat opgeleverd voor de specifieke omstandigheden (run jscript in de dosbox)
PPS
Ik ontwikkel op een Win7 platform omdat ik op dit moment geen toegang heb tot de NT machine; het probleem openbaart zich dus momenteel op de Win7 machine maar ik vermoed dat hetzelfde zal gebeuren op de NT machine.
PPPS
De haastklus is geen aanduiding dat ik van jullie gisteren een antwoord verwachtte
[ Voor 6% gewijzigd door Verwijderd op 28-05-2014 12:42 ]