I would rename the files first and then do your operations on them. A
*lot* of hassle can be avoided by various combinations of SETDOS /X. Look
up the help on SETDOS /X and see if that fixes your issue.
I created a strangely named file and was able to rename it using @REPLACE
to replace the commas with underscores.
[C:\Temp\foo] >"this,is,a(funky)_file"
[C:\Temp\foo] dir
Volume in drive C is unlabeled Serial number is 5013:eee9
Directory of C:\Temp\foo\*
6/18/2009 11:16 <DIR> .
6/18/2009 11:16 <DIR> ..
6/18/2009 11:16 0 this,is,a(funky)_file
0 bytes in 1 file and 2 dirs
63,793,283,072 bytes free
[C:\Temp\foo] ren "this,is,a(funky)_file"
%@replace[^,,_,"this,is,a(funky)_file"]
C:\Temp\foo\this,is,a(funky)_file -> C:\Temp\foo\this_is_a(funky)_file
1 file renamed
Here's another example:
for %f in (*) do ren "%f" %@replace[^,, ,"%f"]
I couldn't get delayed expansion to work properly. Rex or someone - can
you explain why this doesn't work?
[C:\Temp\foo] dir
Volume in drive C is unlabeled Serial number is 5013:eee9
Directory of C:\Temp\foo\*
6/18/2009 11:36 <DIR> .
6/18/2009 11:36 <DIR> ..
6/18/2009 11:35 0 this,is,a(funky)_file
0 bytes in 1 file and 2 dirs
63,793,344,512 bytes free
[C:\Temp\foo] ren * %%@replace[^,,_,"*"]
C:\Temp\foo\this,is,a(funky)_file -> C:\Temp\foo\this,is,a(funky)_file]
TCC: (Sys) The system cannot find the file specified.
"C:\Temp\foo\%@replace["
TCC: (Sys) The system cannot find the file specified.
"C:\Temp\foo\_"
1 file renamed
[C:\Temp\foo] dir
Volume in drive C is unlabeled Serial number is 5013:eee9
Directory of C:\Temp\foo\*
6/18/2009 11:36 <DIR> .
6/18/2009 11:36 <DIR> ..
6/18/2009 11:35 0 this,is,a(funky)_file]
0 bytes in 1 file and 2 dirs
63,793,340,416 bytes free
Notice the commas were not replaced and a close bracket was appended to
the name.
-Scott
"
[email protected]" <> wrote on 06/18/2009
01:44:26 AM:
> Background: I download files from an external site (that I have no
> control over) whose file names are constructed in a way that I
> absolutely *hate*! Among several issues is the fact that the file
> names contain underscores rather than blanks (i.e.
> This_is_a_sample_file_name.ext). Since I have gotten (and continue
> to get) a _lot_ of files from this site, I am *trying* to write a
> batch file that will rename them into a format that I *don't*
> absolutely despise automagically. (The complete set of renaming
> rules is well defined.) I *was* having problems with open
> parenthesis, but I got the solution from this site (Thanks again for
> that!). So the *next* problem is that I am unable to process file
> names that contain commas. (Specifically, %@Index[filename,_], for
> example, doesn't work if the file name contains comma(s). So the
> question is: is there a workaround of some kind for this problem?
> (I can't use the escape character ("^") in the file name variable
> because I am not !
> building the original file names that I am trying to change.)
> Thanks in advance for any help you can give me!
>
>
>
>