我尝试在文件路径周围添加引号,并用0x22替换引号。还尝试了其他变量,它们都返回相同类型的错误。试过一个平等的,两个平等的,所有的首都......一切看起来都正确,但我不明白为什么它不工作,会感激任何帮助。感谢。
set source=N:\Movies\
set target=M:\Movies\
forfiles /P "%source%" /C "cmd /c if @isdir==TRUE ( mklink /d 0x22%target%\@file\0x22 @path ) else ( mklink 0x22%target%\@file\0x22 @path )"
这是错误:
ERROR: Invalid argument/option – '@isdir==TRUE'.
答案 0 :(得分:1)
您需要将@isdir视为字符串
@isdir Returns "TRUE" if a file type is a directory,
and "FALSE" for files.
所以:@isdir=="TRUE"
答案 1 :(得分:1)
选择的答案并不像评论所说的那样起作用。删除%source%
周围的引号,它将起作用(已测试):
set source=N:\Movies\
set target=M:\Movies\
forfiles /P %source% /C "cmd /c if @isdir==TRUE echo @path"
如果您使用%source%
左右的引号对其进行测试,则会得到同样的错误。基本上,即使您没有使用变量并简单地放置路径本身,引号也会搞砸@path
。不要引号。