Node.js中如何获取包含单个反斜杠的目录路径字符串
Node.js CLI获取Windows路径参数的问题解决
问题原因
Windows命令行里,反斜杠\是转义字符。你直接输入node myapp.js D:\test\strange时,shell会把\t、\s这类带反斜杠的组合当成特殊转义序列解析,导致实际传入Node.js的参数丢失了反斜杠,变成D:teststrange。
解决方法
用双引号包裹路径(最推荐):
执行命令时把路径用双引号括起来,shell就会把整个路径当作普通字符串处理,不会解析内部的反斜杠:node myapp.js "D:\test\strange"这时
process.argv[2]就能正确拿到D:\test\strange。用双反斜杠转义:
输入路径时把每个反斜杠改成双反斜杠,让shell解析后保留单个反斜杠:node myapp.js D:\\test\\strange代码内兼容处理(可选):
如果要兼容用户可能的不规范输入,可以在代码里尝试补全路径分隔符,但这种方法存在边界风险(比如路径里本来就有连续字母的情况)。示例代码:const pathArg = process.argv[2]; // 针对Windows路径,尝试补回可能被转义的反斜杠(仅示例,需按需调整) const fixedPath = pathArg.replace(/([a-zA-Z])([a-zA-Z])/g, '$1\\$2'); console.log(fixedPath);不过还是优先让用户通过前两种方法输入更靠谱。
内容的提问来源于stack exchange,提问作者Asif Mahmud
相关产品推荐
相关产品推荐

