fix env name
This commit is contained in:
@@ -185,13 +185,16 @@ fn get_logs_history() -> Vec<LogPayload> {
|
|||||||
fn expand_win_path(path: &str) -> PathBuf {
|
fn expand_win_path(path: &str) -> PathBuf {
|
||||||
let mut expanded = path.to_string();
|
let mut expanded = path.to_string();
|
||||||
let env_vars = [
|
let env_vars = [
|
||||||
"AppData", "LocalAppData", "ProgramData", "SystemRoot", "SystemDrive", "TEMP", "USERPROFILE"
|
"AppData", "LocalAppData", "ProgramData", "SystemRoot", "SystemDrive", "TEMP", "USERPROFILE", "HOMEDRIVE", "HOMEPATH"
|
||||||
];
|
];
|
||||||
|
|
||||||
for var in env_vars {
|
for var in env_vars {
|
||||||
let placeholder = format!("%{}%", var);
|
// 创建不区分大小写的正则表达式,匹配 %VAR%
|
||||||
if expanded.contains(&placeholder) {
|
let re = Regex::new(&format!(r"(?i)%{}%", var)).unwrap();
|
||||||
|
if re.is_match(&expanded) {
|
||||||
if let Ok(val) = std::env::var(var) {
|
if let Ok(val) = std::env::var(var) {
|
||||||
expanded = expanded.replace(&placeholder, &val);
|
// 使用正则表达式替换所有匹配项
|
||||||
|
expanded = re.replace_all(&expanded, val.as_str()).to_string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user