First of all let me apologize for the problems with the forum. We are working on that and have an upgrade planned.
Regarding your issue, this is a known bug, which you can see
here. You may have to create an account on the Connect website in order to see the URL.
Anyways, yeah, that's why the elaborate painful workaround. The way this is supposed to work is that the pipeline should just take care of it. e.g. ls "[filewithbrackets]" | rename-item -new "foo"
Or, there is a parameter which some cmdlets have (and this one doesn't for some reason) called literalPath. e.g.
rename-item -literalPath "[filewithbrackets]" -new "foo"
That would work because literalPath instructs the cmdlet not to look for wildcards and other pattern matching characters, in which the brackets are included.
Anyway, it's a pain, but it'll be fixed in powershell V2. It may be fixed in the CTP version, I don't have that handy at the moment to check.
So...long story short, I recommend enclosing the above into a function and use it in your scripts wherever you have brackets in filenames.