Page 1 of 2
Jrepl
Posted: 25 Jun 2017 04:25
by mogodan2008
Hi Dave,
A big thanks for your good scripts!
I've been processing data and it occurred to me that jrepl would be useful to process a text file like this:
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<pfml version="1.0">
<face>
<attribute name="translation-v-mm">-11.92</attribute>
<geometry>
<Rectangle x="256" y="216" width="132" height="158"/>
</geometry>
<eye>
<eye-bounds>
<attribute name="3d-position-z">724.04</attribute>
<attribute name="3d-position-y">-12.20</attribute>
<attribute name="3d-position-x">-35.30</attribute>
<attribute name="open-closed-state">open</attribute>
<geometry>
<Rectangle x="273" y="246" width="34" height="11"/>
</geometry>
</eye-bounds>
<lower-eyelid>
<geometry>
<Point x="289.98" y="252.91"/>
</geometry>
</lower-eyelid>
<upper-eyelid>
<geometry>
<Point x="289.98" y="242.48"/>
</geometry>
</upper-eyelid>
</eye>
<eye markedPos="1">
<eye-bounds>
<attribute name="3d-position-z">723.94</attribute>
<attribute name="3d-position-y">-11.26</attribute>
<attribute name="3d-position-x">30.69</attribute>
<attribute name="open-closed-state">open</attribute>
<geometry>
<Rectangle x="336" y="244" width="34" height="14"/>
</geometry>
</eye-bounds>
<lower-eyelid>
<geometry>
<Point x="352.91" y="253.31"/>
</geometry>
</lower-eyelid>
<upper-eyelid>
<geometry>
<Point x="352.51" y="242.28"/>
</geometry>
</upper-eyelid>
</eye>
<mouth>
<geometry>
<Rectangle x="294" y="313" width="53" height="14"/>
</geometry>
</mouth>
</face>
<person>
<attribute name="personName">Person1</attribute>
<geometry>
<Rectangle x="289.8" y="252.96" width="5.55" height="4.29"/>
</geometry>
</person>
<person>
<attribute name="personName">Person2</attribute>
<geometry>
<Rectangle x="289.98" y="242.58" width="5.55" height="4.29"/>
</geometry>
</person>
<person>
<attribute name="personName">Person3</attribute>
<geometry>
<Rectangle x="352.95" y="253.32" width="5.55" height="4.29"/>
</geometry>
</person>
<person>
<attribute name="personName">Person4</attribute>
<geometry>
<Rectangle x="352.59" y="242.23" width="5.55" height="4.29"/>
</geometry>
</person>
</pfml>
<orig-lastmodified>1497878193347</orig-lastmodified>
</image>
I need to compare the value "Rectangle x=" of first eye-bounds with the value "Rectangle x=" of second eye-bounds.
If first x < second x, then:
- replace the x value and y value of first lower-eyelid (<Point x="289.98" y="252.91"/>) with value of x and y of Person1;
- replace the x value and y value of first upper-eyelid (<Point x="289.98" y="242.48"/>) with value of x and y of Person2;
- replace the x value and y value of second lower-eyelid (<Point x="352.91" y="253.31"/>) with value of x and y of Person3;
- replace the x value and y value of second upper-eyelid (<Point x="352.51" y="242.28"/>) with value of x and y of Person4;
If first x > second x, then:
- replace the x value and y value of first lower-eyelid (<Point x="289.98" y="252.91"/>) with value of x and y of Person3;
- replace the x value and y value of first upper-eyelid (<Point x="289.98" y="242.48"/>) with value of x and y of Person4;
- replace the x value and y value of second lower-eyelid (<Point x="352.91" y="253.31"/>) with value of x and y of Person1;
- replace the x value and y value of second upper-eyelid (<Point x="352.51" y="242.28"/>) with value of x and y of Person2;
I need to replace just values, keeping the formatted text. Could you help me, please? Thank You!
Best regards,
Dan
Re: Jrepl
Posted: 25 Jun 2017 16:49
by aGerman
Now that I had some free time I wrote a little hybrid script that should meet your requirements.
Code: Select all
@if (@a)==(@b) @end /*
:: Batch
@echo off &setlocal
set /a "start=21653196, stop=21653201"
for /l %%i in (%start% 1 %stop%) do (
if exist "%%i.xml" (
cscript //nologo //e:jscript "%~fs0" "%%i.xml"
) else (
echo "%%i.xml" not found
)
)
pause
:: JScript
exit /b&::*/ try {
var xmlFileName = WScript.Arguments(0);
oXmlDoc = new ActiveXObject('Microsoft.XMLDOM');
oXmlDoc.load(xmlFileName);
var colEyeNodes = oXmlDoc.documentElement.getElementsByTagName('eye'),
colPersonNodes = oXmlDoc.documentElement.getElementsByTagName('person');
if (colEyeNodes.length === 2 && colPersonNodes.length === 4) {
var arrEyeBoundX = new Array(parseFloat(colEyeNodes.item(0).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x')),
parseFloat(colEyeNodes.item(1).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x'))),
person1x = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person1y = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person2x = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person2y = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person3x = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person3y = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person4x = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person4y = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('y');
if (arrEyeBoundX[0] < arrEyeBoundX[1]) {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
} else {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
}
oXmlDoc.save(xmlFileName);
WScript.Quit(0);
} else if (colEyeNodes.length === 2 && colPersonNodes.length === 2) {
var lowerLid1 = colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point'),
upperLid1 = colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point'),
lowerLid2 = colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point'),
upperLid2 = colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point');
if (lowerLid1 !== null && upperLid1 !== null) {
lowerLid1.setAttribute('x', colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('x'));
lowerLid1.setAttribute('y', colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('y'));
upperLid1.setAttribute('x', colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('x'));
upperLid1.setAttribute('y', colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('y'));
}
if (lowerLid2 !== null && upperLid2 !== null) {
lowerLid2.setAttribute('x', colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('x'));
lowerLid2.setAttribute('y', colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('y'));
upperLid2.setAttribute('x', colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('x'));
upperLid2.setAttribute('y', colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('y'));
}
oXmlDoc.save(xmlFileName);
WScript.Quit(0);
} else {
WScript.StdErr.WriteLine('Wrong number of either "eye" or "person" nodes.');
WScript.Quit(1);
}
}
catch(e) {
WScript.StdErr.WriteLine(e.message);
WScript.Quit(1);
}
Save it with extension .bat and customize variables start and stop in the Batch section.
FYI: I had to add <image> instead of your empty second line in order to get a well-formed XML text.
You may also wait for a reply from Dave but I strongly recomment you to use the DOM methods (as I did in the above code) instead of Regex to change XML documents.
Steffen
Re: Jrepl
Posted: 26 Jun 2017 03:24
by mogodan2008
Hi Steffen,
Thank you for your reply!
I had customize the xmlName in batch file and I try your code, but without success. The cmd window is clossing after I press any key, and nothing change in xml file.
Best regards,
Dan
Re: Jrepl
Posted: 26 Jun 2017 04:29
by aGerman
Please post exactly the content of the XML file you tried.
Steffen
Re: Jrepl
Posted: 26 Jun 2017 14:44
by mogodan2008
Hi Steffen,
The content of xml file is:
<?xml version='1.0' encoding='UTF-8'?>
<image id="21653200" version="1.0" image-url="J:\23.06.2017 855 1-5\TagImage-DMS_NIR-Cam-Gen1_Phase2_John_Optitrack-Blink_20160218-150629_30.bw_640x48030fps\21653200.png" width="640" height="480" importedBy="fortune" modifiedBy="fortune" mime-type="image/png">
<creator>Ted</creator>
<rights>Copyright 2016</rights>
<filename>00000220.png</filename>
<created>1456161061808</created>
<lastmodified>1498467052421</lastmodified>
<tag name="DMS_NIR-Cam-Gen1_Phase2_Dan-East_Optitrack-Blink_20160218-150629_30.bw_640x480@30fps"/>
<pfml version="1.0">
<face>
<attribute name="translation-v-mm">-38.65</attribute>
<attribute name="face-roll-deg">-3.44</attribute>
<attribute name="3d-orientation-pitch">-12.46</attribute>
<attribute name="3d-orientation-qz">-0.0090924455</attribute>
<attribute name="3d-orientation-qy">-0.3367829621</attribute>
<attribute name="3d-orientation-qx">0.1121013835</attribute>
<attribute name="translation-h-mm">-87.71</attribute>
<attribute name="3d-orientation-qw">-0.9348411560</attribute>
<attribute name="face-pitch-deg">-16.87</attribute>
<attribute name="3d-orientation-roll">-3.44</attribute>
<attribute name="translation-z-mm">725.36</attribute>
<attribute name="face-yaw-deg">46.34</attribute>
<attribute name="3d-orientation-yaw">40.00</attribute>
<geometry>
<Rectangle x="297" y="234" width="135" height="155"/>
</geometry>
<eye>
<eye-bounds>
<attribute name="3d-position-z">755.18</attribute>
<attribute name="3d-position-y">-34.13</attribute>
<attribute name="3d-position-x">-105.69</attribute>
<attribute name="open-closed-state">closed</attribute>
<geometry>
<Rectangle x="361" y="272" width="25" height="11"/>
</geometry>
</eye-bounds>
<lower-eyelid>
<geometry>
<Point x="367" y="278"/>
</geometry>
</lower-eyelid>
<upper-eyelid>
<geometry>
<Point x="367.3" y="275.3"/>
</geometry>
</upper-eyelid>
</eye>
<eye markedPos="1">
<eye-bounds>
<attribute name="3d-position-z">713.49</attribute>
<attribute name="3d-position-y">-37.99</attribute>
<attribute name="3d-position-x">-54.67</attribute>
<attribute name="open-closed-state">closed</attribute>
<geometry>
<Rectangle x="406" y="265" width="22" height="12"/>
</geometry>
</eye-bounds>
<lower-eyelid>
<geometry>
<Point x="413" y="272"/>
</geometry>
</lower-eyelid>
<upper-eyelid>
<geometry>
<Point x="413" y="269"/>
</geometry>
</upper-eyelid>
</eye>
<mouth>
<geometry>
<Rectangle x="378" y="334" width="36" height="13"/>
</geometry>
</mouth>
</face>
<person>
<attribute name="personName">Person1</attribute>
<geometry>
<Rectangle x="368.27" y="277.82" width="2.72" height="2.59"/>
</geometry>
</person>
<person>
<attribute name="personName">Person2</attribute>
<geometry>
<Rectangle x="368.27" y="275.75" width="2.72" height="2.59"/>
</geometry>
</person>
<person>
<attribute name="personName">Person3</attribute>
<geometry>
<Rectangle x="414.72" y="272.25" width="2.72" height="2.59"/>
</geometry>
</person>
<person>
<attribute name="personName">Person4</attribute>
<geometry>
<Rectangle x="414.85" y="269.79" width="2.72" height="2.59"/>
</geometry>
</person>
</pfml>
<orig-lastmodified>1497878168897</orig-lastmodified>
</image>
and the name of xml file is: 21653200.xml
I put the file and the batch file with your code in the same folder and run. And also I try with the full path of the xml file in xmlName, but without success.
And also, I need to increment the xml file name and apply the code. Thank you!
Best regards,
Dan
Re: Jrepl
Posted: 26 Jun 2017 15:19
by aGerman
My fault

I think I must have done something wrong yesterday.
I corrected my code above. Please try again.
Steffen
Re: Jrepl
Posted: 29 Jun 2017 03:34
by mogodan2008
Hi Steffen,
I had tried with the xml, but it seems that the first condition is not applied. In fact, the first lower- lied x, y points whil get the x,y points of Person3 instead of Person1 points, and the first upper-lied x,y points the points of Person4 instead of Person2; I change the conditional character "less" with "more" ( sorry, I am on mobile phone writting), but with same effect. I had tried with another xml file, with x of second eye-bounds less than x of first eye-bounds and is working fine. Can you help me, please?
Thank you!
Re: Jrepl
Posted: 29 Jun 2017 04:53
by aGerman
I think I know what was going wrong. I corrected the code again.
Steffen
Re: Jrepl
Posted: 29 Jun 2017 23:47
by mogodan2008
Hi Steffen,
Your code is working super! Thank you a lot!
I need to apply the code to several xml files. So, I added some batch lines to your code, like:
" @if (@a)==(@b) @end /*
:: Batch
@echo off &setlocal
set myimage=21653
set x=196
:loop
set "xmlName=%myimage%%x%.xml"
cscript //nologo //e:jscript "%~fs0" "%xmlName%"
pause
:: JScript
exit /b&::*/ try {
var xmlFileName = WScript.Arguments(0);
oXmlDoc = new ActiveXObject('Microsoft.XMLDOM');
oXmlDoc.load(xmlFileName);
var colEyeNodes = oXmlDoc.documentElement.getElementsByTagName('eye'),
colPersonNodes = oXmlDoc.documentElement.getElementsByTagName('person');
if (colEyeNodes.length === 2 && colPersonNodes.length === 4) {
var arrEyeBoundX = new Array(parseFloat(colEyeNodes.item(0).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x')),
parseFloat(colEyeNodes.item(1).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x'))),
person1x = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person1y = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person2x = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person2y = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person3x = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person3y = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person4x = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person4y = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('y');
if (arrEyeBoundX[0] < arrEyeBoundX[1]) {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
} else {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
}
oXmlDoc.save(xmlFileName);
WScript.Quit(0);
} else {
WScript.StdErr.WriteLine('Wrong number of either "eye" or "person" nodes.');
WScript.Quit(1);
}
}
catch(e) {
WScript.StdErr.WriteLine(e.message);
WScript.Quit(1);
}
set /A x+=1
if %x% leq 201 goto loop else goto eof
:eof
exit "
But, when I run the code, the cmd window is showing the mesage: " C:\Users\yoga\Desktop\Test\JSRIP~3.BAT(69, 10) Microsoft JScript compilation error: Expected ';' Press any key to continue..." and nothig happen.
Thank you a lot for your time!
Dan
Re: Jrepl
Posted: 30 Jun 2017 03:27
by aGerman
The script is a hybrid script that will be run twice. First as Batch and then called as JScript (using cscript.exe) out of the Batch code. To achieve that you need to follow a defined structure that is
- first line with valid code in Batch and JScript that is only there to initiate a multi line comment in JScript
- Batch code between /* and */ that will be considered as JScript comment. In this block cscript.exe will be called that runs the same script again as JScript. The batch execution will be quit after either GOTO :EOF of EXIT /B. Thus, the following JScript code was never seen by the command interpreter.
- JScript code following after */ parsed by cscript.exe.
As you can see the script has to be clearly clustered. You can't write any batch code in the JScript block or vice versa.
When I'm back home I'll try to implement your loop.
Steffen
Re: Jrepl
Posted: 30 Jun 2017 10:29
by aGerman
Seems that your file names are numeric and you simply want to process them in a defined range.
Code: Select all
@if (@a)==(@b) @end /*
:: Batch
@echo off &setlocal
set /a "start=21653196, stop=21653201"
for /l %%i in (%start% 1 %stop%) do (
if exist "%%i.xml" (
cscript //nologo //e:jscript "%~fs0" "%%i.xml"
) else (
echo "%%i.xml" not found
)
)
pause
:: JScript
exit /b&::*/ try {
var xmlFileName = WScript.Arguments(0);
oXmlDoc = new ActiveXObject('Microsoft.XMLDOM');
oXmlDoc.load(xmlFileName);
var colEyeNodes = oXmlDoc.documentElement.getElementsByTagName('eye'),
colPersonNodes = oXmlDoc.documentElement.getElementsByTagName('person');
if (colEyeNodes.length === 2 && colPersonNodes.length === 4) {
var arrEyeBoundX = new Array(parseFloat(colEyeNodes.item(0).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x')),
parseFloat(colEyeNodes.item(1).selectSingleNode('eye-bounds/geometry/Rectangle').getAttribute('x'))),
person1x = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person1y = colPersonNodes.item(0).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person2x = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person2y = colPersonNodes.item(1).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person3x = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person3y = colPersonNodes.item(2).selectSingleNode('geometry/Rectangle').getAttribute('y'),
person4x = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('x'),
person4y = colPersonNodes.item(3).selectSingleNode('geometry/Rectangle').getAttribute('y');
if (arrEyeBoundX[0] < arrEyeBoundX[1]) {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
} else {
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person3x);
colEyeNodes.item(0).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person3y);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person4x);
colEyeNodes.item(0).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person4y);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('x', person1x);
colEyeNodes.item(1).selectSingleNode('lower-eyelid/geometry/Point').setAttribute('y', person1y);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('x', person2x);
colEyeNodes.item(1).selectSingleNode('upper-eyelid/geometry/Point').setAttribute('y', person2y);
}
oXmlDoc.save(xmlFileName);
WScript.Quit(0);
} else {
WScript.StdErr.WriteLine('Wrong number of either "eye" or "person" nodes.');
WScript.Quit(1);
}
}
catch(e) {
WScript.StdErr.WriteLine(e.message);
WScript.Quit(1);
}
As you can see the JScript block is not affected by the changes. The FOR /L loop increments the number in %%i that is used as file name and passed to the JScript with extension .xml appended.
Steffen
Re: Jrepl
Posted: 30 Jun 2017 21:42
by mogodan2008
Hi Steffen,
I tried the code, but is not working. After run the code, the cmd window is open and close very quickly.
Thank you,
Dan
Re: Jrepl
Posted: 01 Jul 2017 00:56
by aGerman
Works here. Did you customize variables start and stop? Are they numeric only?
I'll attach the file below.
If the window closes too quick that you can't see any error message then try as follows
- open a cmd window (press [Windows]+[R], type CMD, click OK)
- navigate to the path of your batch file using
- either type the name of the batch file or drag/drop the batch file to the cmd window
- hit Enter to run the script
Now you should see the messages.
Steffen
Re: Jrepl
Posted: 01 Jul 2017 03:06
by mogodan2008
Hi Steffen,
it's working! Thanks a lot!
I have just a question: How to modify your code if I have just a pair of lower-eyelied, upper-eyelied and Person1 and Person2?
In the same way, I want to replace x, y points from Person1 and Person2 to lower-eyelied and upper-eyelied, without comparition of eyes. Thank you very much!
Kind regards,
Dan
Re: Jrepl
Posted: 01 Jul 2017 07:11
by aGerman
I can extend the script (see the attached file) but I can only guess from what person you want to assign the values. Your explanation wasn't clear enough.
Steffen