I've been answering piecemeal some of the questions, but stepping back:
1) In real life, you'd never want a script that adds 0 delay to everything, as there is no way those are the real constraints. I assume you just want this as a placeholder or something for a test design, like when compiling a submodule(although in that case I recommend not constraining the IO, since they're not really top-level ports)
2) set_input/output_delay constraints are difficult for a generic constraint because they require a -clock option to describe the register outside of the FPGA that launches or latches the data. If you have multiple clocks, then you need to know which IO are on which domain and that would not be easy to script. (I can think of some ugly ways, like constrain them to every clock and then cut the ones that aren't real, but again, ugly)
3) For simple IO constraints, set_max_delay and set_min_delay tend to work just fine and don't matter care what the clock is. So you could have an .sdc that does:
set_max_delay -to [all_outputs] 10.0
set_min_delay -to [all_output] 0.0
(I forget if it's -to or -from, to be honest. This is similar to asking for a Tco of 10ns and min Tco of 0ns. On the input side, you may not want clocks and resets to be constrained, so do:
set clocks_and_resets [get_ports clk1 clk2 clk3 reset1] ;# Manually enter your clock names here
set data_inputs [remove_from_collection [all_inputs] $clocks_and_resets]
set_max_delay -from [$data_inputs] 10.0
set_min_delay -from [$data_inputs] 0.0
(In this case 0 may be hard, as there will be clock skew to the latching register in the FPGA, and so data needs to be added to get the delay above that. Personally I would suggest a negative number)