我尝试在文件路径周围添加引号,并用 0x22 替换引号。还尝试了其他变量,它们都返回相同类型的错误。尝试了一个等于,两个等于,全部大写......一切看起来都正确,但我不明白为什么它不起作用,将不胜感激任何帮助。谢谢。
\n\nset 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 )"\nRun Code Online (Sandbox Code Playgroud)\n\n这是错误:
\n\nERROR: Invalid argument/option \xe2\x80\x93 \'@isdir==TRUE\'.\nRun Code Online (Sandbox Code Playgroud)\n
所选答案并不像评论所说的那样有效。删除周围的引号%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基本上,即使您不使用变量而只是放置路径本身,引号也会搞砸。去掉引号。