In Windows 7 command prompt, I´d like to list all files of a folder which name does not start with abc. I have tried:
forfiles /P C:\\myFolder\\
An alternative, in case of using a xcopy command instead of echo is using the option /exclude. For instance:
forfiles /P C:\myFolder\ /M ^[abc]* /S /C "CMD /C xcopy @path %myDestinationFolder% /exclude:abc*"
Also, if you´re using PowerShell, another option is the operator -match.
Looking at forfiles /?:
/M searchmask Searches files according to a searchmask. The default searchmask is '*' .
which strongly suggests forfiles doesn't support regular expressions, just normal Cmd/Windows wildcards.
On Windows 7 this can easily be achieved in PowerShell:
dir c:\myFolder | ?{ -not($_.Name -match '^abc') } | select Name
(That performs a case-insensitive regular expression match, which doesn't matter in the case of Windows filenames.)
NB. Assuming you want files not starting ABC, which isn't what your (attempted) regular expression says (any filename starting something that isn't a, b or c).
Where is my error?
Your error is thinking that the forfiles command would support regular expressions.
It does not. It supports file name matching with * and ?.