我尝试过在文件的周围添加引号,并将引号替换为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'.发布于 2015-06-21 02:02:52
您需要将@isdir视为字符串
@isdir Returns "TRUE" if a file type is a directory,
and "FALSE" for files.所以:@isdir=="TRUE"
来源:http://ss64.com/nt/forfiles.html
发布于 2018-05-22 19:33:20
所选的答案不像评论所说的那样起作用。删除%source%周围的引号,它将起作用(测试):
set source=N:\Movies\
set target=M:\Movies\
forfiles /P %source% /C "cmd /c if @isdir==TRUE echo @path"如果你用%source%周围的引号来测试它,你会得到同样的错误。基本上,即使您没有使用变量并简单地放置路径本身,引号也会破坏您的@path。把引号拿开。
https://stackoverflow.com/questions/30960513
复制相似问题