如何将名称中带空格的文件传递给命令FC?

时间:2018-06-14 14:38:45

标签: windows batch-file arguments parameter-expansion

我有一个包含命令FC的diff脚本,所以我只需要删除两个文件:

FC /L /N "%1" "%2" > diff.out.txt 2> diff.err.txt

它工作正常,但如果其中一个文件名称中有空格... 例如,我的文件路径为C:\Users\joH1\Desktop\file_with a_space.txtC:\Users\joH1\Desktop\file_2.txt,我收到错误(对不起本地化):

FC : commutateur non valide

FC : impossible d'ouvrir C:\USERS\JOH1\DESKTOP\FILE_WITH - Ce fichier ou dossier n'existe pas

因此,文件名被拆分为两个单独的参数,即使引用了路径

为了找出它的来源,我在我的剧本中添加了一些行:

echo %1
echo %2
FC /L /N "%1" "%2" > diff.out.txt 2> diff.err.txt
pause

我得到echo s的正确输出(虽然args没有引用!):

"C:\Users\joH1\Desktop\file_with a_space.txt"
"C:\Users\joH1\Desktop\file_2.txt"

我甚至尝试使用dir来确保echo没有合并分裂参数,并且我得到了正确的结果(文件被识别并列出=>名称未拆分)。

因此;我想FC应该归咎于此。

有没有办法告诉它分割文件名? (比如引号应该?) 我想要一种与drag& amp;如果可能的话,那就不是重命名没有空格的文件 ......

提前致谢!

1 个答案:

答案 0 :(得分:1)

FC /L /N "%~1" "%~2" > diff.out.txt 2> diff.err.txt

应该读取您的文件。我假设您的参数只是双引号,并且它们不包含`