batch-filefor-loopcmdescapingforfiles

How to escape the `@` variable replacement in `forfiles`?


I am using a forfiles command line like this (Windows 7 x64):

forfiles /P "C:\root" /M "*.txt" /C "cmd /C echo @relpath"

How can I escape the replacement of @relpath (relative path to currently iterated item) to get @relpath output literally? (...or any other @ variable?)


So far I tried the following things, without success:


Solution

  • I just found an even easier method:

    forfiles /P "C:\root" /M "*.txt" /C "cmd /C echo @^relpath"
    

    Note the ^ after the @ sign.