各侧面都是正方形的棱柱不一定是正棱柱,因为各相邻侧面并不一定互相垂直.比如这样一个四棱柱:各侧面都是正方形,但底面是不是正方形而是菱形,此时这个四棱柱就不是正四棱柱,故①错误;由长方体的性质知:各对角面是全等矩形的平行六面体一定是长方体,故②正确;有两个侧面垂直于底面的棱柱一定是直棱柱,必须是两个相邻的侧面垂直于底面的棱柱才为直棱柱,故③错误;长方体的底边不一定相等,所以长方体不一定是正四棱柱,故④错误.故选:B.