批处理文件,搜索文件和替换字符串

时间:2017-03-17 17:57:10

标签: file batch-file search

我正在尝试创建一个批处理文件,该文件将搜索指定的文件,并用其他内容替换其中的字符串

问题是每个用户的路径不同。

该文件是prefs.js,它位于C:\%username%\AppData\Roaming\Thunderbird\Profiles\xxxxxxx.default\prefs.js

这可能吗?

2 个答案:

答案 0 :(得分:0)

虽然我知道这不是一个完整的答案,但它可能会让你到目前为止甚至可能让你重新考虑你的方法。

我不确定您是否知道每个最终用户都可以拥有多个配置文件,因此可以拥有个人资料文件夹。此外,他们可以将这些文件夹命名为,但他们不仅喜欢* .default名称,(可能根本不存在),它们也可以在任何位置。

但是有一种方法可以确定这些名称和路径,因为profiles.ini目录中有一个名为%AppData%\Thunderbird的文件,用于定义该信息。

以下是未经测试的示例脚本,该脚本应将变量设置为单个用户的可用prefs.js文件。

@Echo Off
Set "PF=%AppData%\Thunderbird\"
If Not Exist "%PF%" GoTo :EndIt
Set "i=0"
For /F "Tokens=1* Delims==" %%A In (
    'FindStr/R "^Path=.*" "%PF%Profiles.ini"') Do (Set "TP=%%B"
    Call :Sub "%%TP:/=\%%")
Set PJ[
:EndIt
Echo( Press any key to exit...
Timeout -1 1>Nul
Exit/B
    :Sub
    Set/A i+=1
    If Exist "%PF%%~1\" (Set "PJ[%i%]=%PF%%~1\prefs.js"
        ) Else Set "PJ[%i%]=%~1\prefs.js"

答案 1 :(得分:0)

为什么不在你的路径中使用* .default?

你有没有看到有两个.default目录的Thunderbird?如果是,您的修改是否可能是另一个配置文件中的问题?

有时简单比复杂更好:)