我怎么能用for循环呢?

时间:2016-11-25 19:31:53

标签: batch-file for-loop

当我执行此命令时

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

它工作正常,' *'被替换

但是当我使用for循环时,' *'没有被替换

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

1 个答案:

答案 0 :(得分:0)

您的Firefox配置文件可能位于该位置,大多数* .default文件夹也是如此,但这不是唯一可以找到的地方,每个用户可以拥有其中的几个。 但好消息是,他们的位置是在特定位置的特定文件中定义的。

以下示例代码应该(未经测试),通过搜索该已知文件输出每个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]%......等。