2016-11-25 85 views
-1

当我EXCUTE此命令如何使用for循环做到这一点?

cd /D "%APPDATA%\Mozilla\Firefox\Profiles\*.REPORTING_1" 

它工作正常,在 '*' 代替

但是当我工作了循环的 '*' 不更换

for /L %%a in (1, 1, 2) do (
    cd /D "%APPDATA%\Mozilla\Firefox\Profiles\*.REPORTING_%%a" 
    set ffile=%cd% 
) 
+0

如果我看看我的firefox appdata subdirs,我没有发现任何类似的东西,你应该展示你想要迭代的dirs的样本。 Tree.exe对此仍然有帮助。 – LotPings

+0

IMO在星号 – LotPings

+0

前面有一个反斜线,这是“%APPDATA%\ Mozilla \ Firefox \ Profiles \\ *。REPORTING_1”更改为“C:\ Users \ khalid \ AppData \ Roaming \ Mozilla \ Firefox \配置文件\\ *。R EPORTING_1“,并且该文件夹我创建了它的defult文件夹有”C:\ Users \ khalid \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \\ * .d默认“和'*'应该被替换为字符串Mozilla创建它 –

回答

0

您的Firefox配置文件可能位于该位置,大多数*。默认文件夹也可以找到,但这不是唯一可以找到的位置,每个用户可以有几个。 虽然好消息是它们的位置是在特定位置的特定文件中定义的。

以下示例代码应该(未测试)通过搜索已知文件输出每个ProfilePath并可能帮助您解决问题。

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

每个ProfilePath被设置为一个变量,例如, %PP [1]%,%PP [2]%,%PP [3]%...等等。

+0

不是直接回答我的问题,但是我改变了一切以便我可以使用您的示例和IT WORKED,非常感谢(y) –