Batch mode example: Score Tables

Top Up Down  A A

Winsteps produces a Score Table in Table 20 which is for responses to every active item. You can use the Batch File feature to automate the production of Score Tables for subtests of items.

 

(1) Do the calibration run:

 

 title="Item calibration"

 ni=3            ; these match your data file

 item1=1

 name1=1

 codes=123

 ISGROUPS=0

 ifile= if.txt  ; item calibrations

 sfile= sf.txt  ; rating (or partial credit) scale structure

 data=data.txt

 &end

 ......

 END LABELS

 

(2) Set up the control file for the batch run:

 

 ; This is scon.txt

 title="Produce score table"

 ni=3               ; match your data file

 item1=1

 name1=1

 codes=123

 ISGROUPS=0

 iafile = if.txt ; item anchor file

 safile = sf.txt ; rating (or partial credit) scale structure anchor file

 pafile=*

 1 0   ; dummy person measures

 2 0

 *

 CONVERGE=L  ; only logit change is used for convergence

 LCONV=0.005  ; logit change too small to appear on any report.

 &end

....

END LABELS

121.... ; two lines of dummy data - such that every item has a non-extreme score.

212....

 

(3) Set up the Batch (.bat or .cmd) file and run it. Use IDFILE=* to select the items you want (or ISELECT=)

 

rem this is score.cmd

del sc*.txt

start /w ..\winsteps sc.txt dummy SCOREFILE=sc001.txt batch=yes idfile=* +3 * title=item3

start /w ..\winsteps sc.txt dummy SCOREFILE=sc010.txt batch=yes idfile=* +2 * title=item2

start /w ..\winsteps sc.txt dummy SCOREFILE=sc100.txt batch=yes idfile=* +1 * title=item1

start /w ..\winsteps sc.txt dummy SCOREFILE=sc011.txt batch=yes idfile=* +2 +3 * title=items23

start /w ..\winsteps sc.txt dummy SCOREFILE=sc101.txt batch=yes idfile=* +1 +3 * title=item13

start /w ..\winsteps sc.txt dummy SCOREFILE=sc110.txt batch=yes idfile=* +1 +2 * title=items12

start /w ..\winsteps sc.txt dummy SCOREFILE=sc111.txt batch=yes idfile=* +1 +2 +3 * title=items123

.....

copy sc*.txt scores.txt

 

(4) The Score Tables are in file scores.txt

 


 

Batch command to select one line from a file.

 

Save the code below as oneline.bat

Then

c:>oneline 23 infile.txt >>outfile.txt

selects line 24

 

 @echo off

 rem select one line  from a file

 setlocal enabledelayedexpansion

 if [%1] == [] goto usage

 if [%2] == [] goto usage

 for /f "skip=%1 delims=" %%a in (%2) do (

 echo %%a

 goto exit

 )

 goto exit

 :usage

 echo Usage: oneline.bat  linebefore infile   >>outfile

 :exit