Uzyskaj adres URL bieżącej karty za pomocą pliku .batch

1

Jestem facetem z Firefoksa, czy jest jakiś sposób na uzyskanie adresu URL aktywnej karty poprzez .batchplik?

Na przykład, jeśli url aktywnej karcie w Firefoksie jest whatever.com, muszę się dostać whatever.comza pomocą batpliku.

Mehdi Dehghani
źródło

Odpowiedzi:

0

Tylko aktywna karta będzie miała tytuł wykrywalny przez tasklist. Więc:

tasklist /v /fi "imagename eq firefox.exe"  |findstr /r /v "N/A"

lub przetwarzane za pomocą FOR:

for /f "skip=1 tokens=9* delims= " %%a in ('tasklist /v /fi "imagename eq firefox.exe"  ^|findstr /r /v "N/A"') do @echo %%b

chociaż tytuł może być inny niż link.

Z sendkeys.batwas może oszukać przeglądarkę, aby zmienić swój tytuł do bieżącej linku:

@echo off
::get the title of the active page
for /f "skip=3 tokens=9* delims= " %%a in ('tasklist /v /fi "imagename eq firefox.exe"  ^|findstr /r /v "N/A nsAppShell:EventWindow"') do set "fftitle=%%b"
::get the first 10 sympols needs to be passed to the sendkeys command
set "fftitle=%fftitle:~0,10%"
::opens the console of the browser
call sendkeys.bat "%fftitle%" "{f12}"
::waits for 2 seconds
w32tm /stripchart /computer:localhost /period:2 /dataonly /samples:2  1>nul
::changing the title with the link location
call sendkeys.bat "%fftitle%" "document.title=window.location.href{ENTER}"
::wait for 3 seconds
w32tm /stripchart /computer:localhost /period:3 /dataonly /samples:2  1>nul
::get the new title
for /f "skip=3 tokens=9* delims= " %%a in ('tasklist /v /fi "imagename eq firefox.exe"  ^|findstr /r /v "N/A nsAppShell:EventWindow"') do set "fftitle=%%b"
echo "%fftitle%"

Edit . Bezpośrednie otwarcie konsoli:

@echo off
::get the title of the active page
for /f "skip=3 tokens=9* delims= " %%a in ('tasklist /v /fi "imagename eq firefox.exe"  ^|findstr /r /v "N/A nsAppShell:EventWindow"') do set "fftitle=%%b"
::get the first 10 sympols needs to be passed to the sendkeys command
set "fftitle=%fftitle:~0,10%"
::opens the console of the browser
call sendkeys.bat "%fftitle%" "^+K"
::waits for 2 seconds
w32tm /stripchart /computer:localhost /period:2 /dataonly /samples:2  1>nul
::changing the title with the link location
call sendkeys.bat "%fftitle%" "document.title=window.location.href{ENTER}"
::wait for 3 seconds
w32tm /stripchart /computer:localhost /period:3 /dataonly /samples:2  1>nul
::get the new title
for /f "skip=3 tokens=9* delims= " %%a in ('tasklist /v /fi "imagename eq firefox.exe"  ^|findstr /r /v "N/A nsAppShell:EventWindow"') do set "fftitle=%%b"
echo "%fftitle%"
npocmaka
źródło
Nie zmienia tytułu przeglądarki w moich testach. oczywiście nie mogłem też pobrać
adresu
@MehdiDehghani - czy jest wydrukowany jakiś błąd? Czy skrypt otwiera konsolę przeglądarki?
npocmaka
Nie dostałem błędu, konsola przeglądarki została otwarta przez skrypt ( karta Sieć ), ale tytuł się nie zmienił.
Mehdi Dehghani,
@MehdiDehghani - ahaaa. Firefox zachowuje ostatnią klikniętą kartę. Możesz kliknąć kartę konsoli i zadziała. Tymczasem zmienię skrypt, aby bezpośrednio otworzyć konsolę
npocmaka,
@MehdiDehghani - czy możesz wypróbować moją aktualizację?
npocmaka