JavaScript: 转义(编码?)文件名中的特殊字符

JavaScript: Escape (encode?) special characters in filenames

我有一个 JavaScript 在本地文件上运行外部程序 (mediainfo)。但是,我的某些文件中包含的字符会扰乱我的代码。

代码:

 objMedInfo = JSON.parse(proc.execSync('mediainfo "' + currentfilename + '" --output=JSON').toString());

问题是如果当前文件名包含引号或其他一些扩展字符,命令将失败。

有没有办法对当前文件名进行转义或编码以防止这种情况发生?重命名所有可能的文件是不可行的。

使用 execFileSync 而不是 execSync。这允许您在数组中提供参数,而不是将所有内容都放在必须由 shell.

解析的字符串中
objMedInfo = JSON.parse(proc.execFileSync('mediainfo', [currentfilename, '--output=JSON']).toString());