是否有与Linux的“ sdiff -s”命令等效的批处理?

时间:2019-05-08 19:57:15

标签: batch-file

我正在上的计算机科学课使用bash脚本对作业进行评分。但是,由于许多学生使用Windows,所以我试图编写一个等效的批处理文件,使他们可以在设备上运行以对实验室进行评分。

bash脚本的一个非常重要的部分是 “ sdiff -s key_ $ f out_ $ f >> details.txt”

它比较密钥文件和输出文件,并在详细信息文件中打印差异。

自从我使用批处理文件以来,我一直没有使用bash,并且已经有一段时间了,所以我很迷路。

Bash脚本:

echo ""
echo "Running Diff"
echo "--------"
rm turnin.txt
rm details.txt
for f in file*.txt;
do
    f=${f#tests/}
    cat out_$f >> turnin.txt
    echo "out_$f">> details.txt
    sdiff -s key_$f out_$f >> details.txt
    if [ ${PIPESTATUS[0]} -eq 0 ];
    then
        echo "key_$f and out_$f are identical"
    else
        echo "key_$f and out_$f differ :: check details.txt for details"
    fi
done
echo "--------"

文件相同时的details.txt示例:

out_file1.txt
out_file2.txt
out_file3.txt
out_file4.txt
out_file5.txt

文件的某些行不同时的details.txt示例:

out_file1.txt
isBalanced { ( [ ] } ) False                      | isBalanced { ( [ ] } ) True
isBalanced { { ( ) [ { } ] ( [ ] ) } } True       | isBalanced { { ( ) [ { } ] ( [ ] ) } } False
out_file2.txt
out_file3.txt
out_file4.txt
  40 2 4 + 2 2 + - * 4 5 / 6 / -                  |   402 4 + 2 2 + - * 4 5 / 6 / -
  48 36 7 % + 2 -                                 |   48 36 7 2 -
out_file5.txt

任何建议都值得赞赏!

0 个答案:

没有答案