Wyszukiwanie folderu o losowej nazwie.

0

Hej,
z góry przyznam, że nie znam PHP, ponieważ do tej pory nie miałem takiej potrzeby i zapewne po tej sytuacji już nie będzie.

Muszę wyedytować pewien plik, a konkretnie jest to plik konfiguracji przeglądarki firefox, który znajduje się w lokalizacji o losowej nazwie, a konkretnie:
C:\Users\NazwaUsera\AppData\Roaming\Mozilla\Firefox\Profiles**ivpffs2i.default **

Chciałbym utworzyć plik .bat, który zautomatyzuje cały proces, jednak nie potrafię dostać się do tych lokalizacji o losowych nazwach.
Losowy jest ciąg znaków przed kropką.

Próbowałem z poniższym kodem, ale nie potrafie tego posklejać. Jest ktoś kto byłby w stanie mi pomóc ? :)


function the_file($dir = 'C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles\') {
    $files = glob($dir . '/*.default');
    return $files[0]; // return the first filename
}

$file = the_file();
start cmd.exe echo $file;

start /d "C:\Users\rydzkowski.g\AppData\Roaming\Mozilla\Firefox\Profiles\$file"
1

Nie możesz wepchać kodu PHP w plik *.bat ...

0

Czyli fantazja mnie poniosła.
W języku batch jestem w stanie jakoś zidentyfikować ten folder?

1

Tak, sporo da się w tym zrobić, ale jest to nieszczególnie łatwe.

@echo off

call :profile

:Trim
SetLocal EnableDelayedExpansion
set Params=%*
for /f "tokens=1*" %%a in ("!Params!") do EndLocal & set %1=%%b
exit /b

:profile
for /d %%d in (%appdata%\Mozilla\Firefox\Profiles\*) do (set profile=%%d & goto break)
:break
call :Trim profile %profile%
echo "Found %profile%"
notepad "%profile%\logins.json"
1

nie połączysz BATa z PHP. Ale można to napisać wygodniej w PowerShellu. Do konkretów.

Jeśli nie masz nazwy katalogu to go nie znajdziesz. Możesz teoretycznie wylistować wszystkie katalogi w:
C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles, jeśli będzie tylko jeden to wiadomo że to o niego chodzi. Ale jeśli będzie więcej to co? Ano w tym miejscu:
C:\Users\user\AppData\Roaming\Mozilla\Firefox jest plik profiles.ini który zawiera informacje o profilach. Zawiera tez informacje o profilu który jest aktywny, domyślny. Stamtąd możesz wyciągnać nazwe katalogu do któregu musisz sie udać.

W Batchu będzie to cięzkie, bo trzeba otworzyć plik tekstowy i go sparsować. Nie jest to niewykonywalne, ale istnieją inne języki dostępne z poziomu konsoli, np wyzej wymieniony PowerShell.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0