0

我有一个包装命令的 diff 脚本,FC因此我只需在其上放置两个文件:

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

它工作正常,但如果其中一个文件的名称中有空格......例如,我的文件路径是C:\Users\joH1\Desktop\file_with a_space.txtand C:\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

我得到了echos 的正确输出(尽管 args 没有被引用!):

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

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

所以; 我想FC应该归咎于此。

有没有办法告诉它不要拆分文件名?(应该像引号一样?)
我想要一种与拖放兼容的方式,如果可能的话,这不是Rename your files without spaces ......

提前致谢!

4

1 回答 1

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

应该阅读你的文件。我假设您的参数只是双引号,并且它们不包含`发布的内容。

于 2018-06-14T14:59:43.313 回答