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