FORFILES 无效的参数/选项

dvt*_*tan 2 batch-file

我尝试在文件路径周围添加引号,并用 0x22 替换引号。还尝试了其他变量,它们都返回相同类型的错误。尝试了一个等于,两个等于,全部大写......一切看起来都正确,但我不明白为什么它不起作用,将不胜感激任何帮助。谢谢。

\n\n
set source=N:\\Movies\\\nset target=M:\\Movies\\\n\nforfiles /P "%source%" /C "cmd /c if @isdir==TRUE ( mklink /d 0x22%target%\\@file\\0x22 @path ) else ( mklink 0x22%target%\\@file\\0x22 @path )"\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是错误:

\n\n
ERROR: Invalid argument/option \xe2\x80\x93 \'@isdir==TRUE\'.\n
Run Code Online (Sandbox Code Playgroud)\n

Sum*_*one 5

所选答案并不像评论所说的那样有效。删除周围的引号%source%,它将起作用(已测试):

set source=N:\Movies\
set target=M:\Movies\

forfiles /P %source% /C "cmd /c if @isdir==TRUE echo @path"
Run Code Online (Sandbox Code Playgroud)

如果您使用 周围的引号进行测试%source%,您将得到相同的错误。@path基本上,即使您不使用变量而只是放置路径本身,引号也会搞砸。去掉引号。