我试图创建一个批处理文件,谁将会对指定的文件搜索,会被别的东西批处理文件,搜索文件,并替换字符串
问题替换字符串中它是路径是不同的每个用户。
的文件是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名称,(根本不存在),它们也可以位于任何位置。
然而,有确定这些名称和路径的方法,因为有一个名为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"
为什么不直接在路径中使用* .default?
你有没有看到一个Thunderbird与两个.default目录?如果是的话,你的修改可能是另一个配置文件中的问题吗?
有时简单比复杂:)
您希望每个用户更改字符串吗?或者从管理员帐户中执行此操作?检查这也 - http://stackoverflow.com/questions/60034/how-can-you-find-and-replace-text-in-a-file-using-the-windows-command-line-envir – npocmaka
是_ “位于C:\%用户名%\ AppData \ Roaming \ Thunderbird \ Profiles \ xxxxxxx.default \ prefs.js'中的”每个用户的路径不同“或”文件_“ (我认为你正在回答你自己的问题) – Aacini
你需要识别'xxxxxxx'字符串(每个用户在'xxxxxxx.default'文件夹名中是不同的)?是的,这是可能的,但我敢说,而不是'C:\%username%\ AppData \ Roaming'应该是'%userprofile%\ AppData \ Roaming'或甚至'%appdata%'就足够了。 – JosefZ