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

File 批处理文件、搜索文件和替换字符串,file,batch-file,search,File,Batch File,Search,我正在尝试创建一个批处理文件,该文件将搜索指定的文件,并用其他内容替换其中的字符串 问题是每个用户的路径都不同 该文件为prefs.js,位于C:\%username%\AppData\Roaming\Thunderbird\Profiles\xxxxxxx.default\prefs.js 这可能吗?虽然我知道这不是一个完整的答案,但它可能会让你走得更远,甚至可能让你重新思考你的方法 我不确定您是否知道每个最终用户都可以有多个配置文件,因此也可以有多个配置文件文件夹。此外,他们可以命名这些文件

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

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

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

这可能吗?

虽然我知道这不是一个完整的答案,但它可能会让你走得更远,甚至可能让你重新思考你的方法

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

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

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

@Echo关闭
设置“PF=%AppData%\Thunderbird\”
如果不存在“%PF%”转到:EndIt
设置“i=0”
对于/F“Tokens=1*Delims==”%%A In(
“FindStr/R”^Path=.'%PF%Profiles.ini')Do(设置“TP=%%B”
调用:Sub“%%TP:/=\%%”)
设置PJ[
:EndIt
回声(按任意键退出。。。
超时-1>Nul
退出/B
:Sub
设置/A i+=1
如果存在“%PF%%~1\”(设置“PJ[%i%]=%PF%%~1\prefs.js”
)否则设置“PJ[%i%]=%~1\prefs.js”

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

你见过一个有两个默认目录的Thunderbird吗?如果是的话,你的修改是否会在另一个配置文件中出现问题


有时简单总比复杂好:)

你想让每个用户都更改字符串?或者从管理员帐户更改字符串?也请检查“每个用户的路径不同”还是文件“位于
C:\%username%\AppData\Roaming\Thunderbird\Profiles\xxxxxxx.default\prefs.js”?(我想你在回答你自己的问题)您是否需要识别
xxxxxxx
字符串(对于
xxxxxxx中的每个用户,该字符串是不同的。默认的
文件夹名称)是的,这是可能的,尽管我敢说,除了
C:\%username%\AppData\Roaming
应该是
%userprofile%\AppData\Roaming
,甚至
%AppData%
应该就足够了。所以你想操纵/破解雷鸟的首选项文件。这通常只由我们称之为
黑客的坏人来完成我们的案例
script kiddie
和我不想帮助的人。但我还是回答了你的问题:是的,这是可能的。我不想破解prefs.js,我想用GPO中的.batch文件替换prefs.js中的错误字符串,我不想为500多个用户手动操作。问题是prefs.js不在同一个位置每个用户的目录。每个用户的此路径部分不同\xxxxxxx.d‌​efault\所以我需要一个能够找到prefs.js并能在prefs.js中找到并替换字符串的.batch。如果我的问题不是100%清楚,我很抱歉