FORFILES无效的参数/选项

时间:2015-06-21 01:41:44

标签: batch-file

我尝试在文件路径周围添加引号,并用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'.

2 个答案:

答案 0 :(得分:1)

您需要将@isdir视为字符串

  @isdir   Returns "TRUE" if a file type is a directory,
           and "FALSE" for files.

所以:@isdir=="TRUE"

来源:http://ss64.com/nt/forfiles.html

答案 1 :(得分:1)

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

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

forfiles /P %source% /C "cmd /c if @isdir==TRUE echo @path"

如果您使用%source%左右的引号对其进行测试,则会得到同样的错误。基本上,即使您没有使用变量并简单地放置路径本身,引号也会搞砸@path。不要引号。