我正在尝试编写一个glob模式,它将搜索intellij二进制文件(大致),但不会在C:\Windows内部搜索,因为那里可能没有任何文件。我添加了一些最小匹配示例,它们似乎可以按预期工作,但glob.sync找不到该文件。任何帮助都是非常感谢的!
var minimatch = require("minimatch")
var globSync = require('glob').sync
const FILE_THAT_EXISTS = 'C:/Program Files/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe';
const globPattern = `C:/!(Windows)/JetBrains/IntelliJ*/bin/idea64.exe`;
console.log(minimatch("C:/Program Files/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Program Files (x86)/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Windows/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch("C:/Software/JetBrains/IntelliJ IDEA 2019.1.1/bin/idea64.exe", globPattern))
console.log(minimatch(FILE_THAT_EXISTS, globPattern));
console.log('\n')
const globResults = globSync(globPattern, {})
console.log(`glob results:`)
console.log(globResults);
console.log('\n')
// Verify that file actually exists:
var fs = require('fs');
try {
fs.accessSync(FILE_THAT_EXISTS)
console.log('file found');
} catch (e) {
console.log('file NOT found')
console.error(e)
}此脚本的输出:
true
true
false
true
true
glob results:
[]
file found当然,我希望该可执行文件列在globResults数组中。
发布于 2019-08-21 21:50:03
这就是我想要的:
var globSync = require('glob').sync
const globPattern = `/!(windows)/jetbrains/intellij*/bin/idea64.exe`;
const globResults = globSync(globPattern, { nocase: true, strict: false, silent: true })
console.log(`glob results:`, globResults)https://stackoverflow.com/questions/55985408
复制相似问题