%1是参数,不能用在for里面的,至于那个只读,看下楼的了、
@for %i in (%windir%\system32\*.ocx) do @regsvr32.exe /s "%i"
看仔细 是%i 不是%1