# CMD - Export and Import Edge Custom SearchEngines
*Source: [erbanku/custom-search-engines-backup: Import/Export Google Chrome or Microsoft Edge's custom search engines and sync (overwrite) between 2 browsers. (github.com)](https://github.com/erbanku/custom-search-engines-backup)*
## Contents
- [[#Export|Export]]
- [[#Import|Import]]
- [[#Appendix: Links|Appendix: Links]]
Note that these commands/scripts assume [[SQLite]] executable is installed and on your system/user's `PATH`:
```powershell
scoop install sqlite3
```
## Export
```cmd
@echo off
set CURRENT_DRIVE=%~d0
set CURRENT_DIR=%~p0
if "%1"=="" (
set DESTINATION=%CURRENT_DRIVE%%CURRENT_DIR%Edgekeywords.sql
) else (
set DESTINATION=%~f1
)
set DESTINATION=%DESTINATION:\=/%
set TEMP_SQL_SCRIPT=%TEMP%\sync_edge_sql_script
pushd
echo Exporting Edge keywords to %DESTINATION%...
cd /D "%HOMEDRIVE%%HOMEPATH%\AppData\Local\Microsoft\Edge Dev\User Data\Default"
echo .output "%DESTINATION%" > %TEMP_SQL_SCRIPT%
echo .dump keywords >> %TEMP_SQL_SCRIPT%
"sqlite3.exe" -init %TEMP_SQL_SCRIPT% "Web Data" .exit
del %TEMP_SQL_SCRIPT%
popd
if errorlevel 1 pause
```
Results in a derived [[SQL]] script:
`Edgekeywords.sql`:
```sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE keywords (id INTEGER PRIMARY KEY,short_name VARCHAR NOT NULL,keyword VARCHAR NOT NULL,favicon_url VARCHAR NOT NULL,url VARCHAR NOT NULL,safe_for_autoreplace INTEGER,originating_url VARCHAR,date_created INTEGER DEFAULT 0,usage_count INTEGER DEFAULT 0,input_encodings VARCHAR,suggest_url VARCHAR,prepopulate_id INTEGER DEFAULT 0,created_by_policy INTEGER DEFAULT 0,last_modified INTEGER DEFAULT 0,sync_guid VARCHAR,alternate_urls VARCHAR,image_url VARCHAR,search_url_post_params VARCHAR,suggest_url_post_params VARCHAR,image_url_post_params VARCHAR,new_tab_url VARCHAR,last_visited INTEGER DEFAULT 0, created_from_play_api INTEGER DEFAULT 0, is_active INTEGER DEFAULT 0);
INSERT INTO keywords VALUES(2,'Bing','bing.com','https://www.bing.com/sa/simg/favicon-2x.ico','{bing:baseURL}search?q={searchTerms}&{bing:cvid}{bing:msb}{google:assistedQueryStats}',1,'',0,0,'UTF-8','{bing:baseURL}qbox?query={searchTerms}&language={language}&{bing:partner}{bing:cvid}{bing:msb}{bing:ig}{google:inputType}{google:cursorPosition}{google:pageClassification}{bing:features}{bing:flights}',1,0,0,'485bf7d3-0215-45af-87dc-538868000001','[]','{bing:baseURL}images/detail/search?iss=sbiupload&FORM=ANCMS1#enterInsights','','','imageBin={google:imageThumbnailBase64}','{bing:baseURL}chrome/newtab',13291167504584288,0,0);
INSERT INTO keywords VALUES(3,'Yahoo!','yahoo.com','https://search.yahoo.com/favicon.ico','https://search.yahoo.com/search{google:pathWildcard}?ei={inputEncoding}&fr=crmas_sfp&p={searchTerms}',1,'',0,0,'UTF-8','https://search.yahoo.com/sugg/chrome?output=fxjson&appid=crmas_sfp&command={searchTerms}',2,0,0,'485bf7d3-0215-45af-87dc-538868000002','[]','','','','','https://search.yahoo.com?fr=crmas_sfp',0,0,0);
INSERT INTO keywords VALUES(4,'Google','google.com','https://www.google.com/images/branding/product/ico/googleg_lodp.ico','{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:iOSSearchLanguage}{google:prefetchSource}{google:searchClient}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}',1,'',0,0,'UTF-8','{google:baseSuggestURL}search?{google:searchFieldtrialParameter}client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:omniboxFocusType}{google:cursorPosition}{google:pageClassification}{google:searchVersion}{google:sessionToken}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}',3,0,0,'485bf7d3-0215-45af-87dc-538868000003','["{google:baseURL}#q={searchTerms}","{google:baseURL}search#q={searchTerms}","{google:baseURL}webhp#q={searchTerms}","{google:baseURL}s#q={searchTerms}","{google:baseURL}s?q={searchTerms}"]','{google:baseSearchByImageURL}upload','','','encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}','',0,0,0);
INSERT INTO keywords VALUES(5,'DuckDuckGo','duckduckgo.com','https://duckduckgo.com/favicon.ico','https://duckduckgo.com/?q={searchTerms}',1,'',0,0,'UTF-8','https://duckduckgo.com/ac/?q={searchTerms}&type=list',92,0,0,'485bf7d3-0215-45af-87dc-538868000092','[]','','','','','https://duckduckgo.com/chrome_newtab',0,0,0);
INSERT INTO keywords VALUES(6,'GitHub','github.com','https://github.githubassets.com/favicons/favicon-dark.svg','https://github.com/search?q={searchTerms}&ref=opensearch',1,'https://github.com/opensearch.xml',13290915667964706,0,'UTF-8','',0,0,13290915667964706,'469a8d26-a794-44b6-a31a-00b7b2ba45e0','[]','','','','','',13291001137827521,0,0);
COMMIT;
```
## Import
```cmd
@echo off
tasklist /FI "IMAGENAME eq edge.exe" 2>NUL | find /I /N "edge.exe">NUL
if "%ERRORLEVEL%"=="0" (
echo Close edge and try again...
pause
exit /B 1
)
set /P PROCEED=This will overwrite your Microsoft edge search engines! Are you sure?
if "%PROCEED%"=="Y" goto DoIt
if "%PROCEED%"=="y" goto DoIt
if "%PROCEED%"=="YES" goto DoIt
if "%PROCEED%"=="Yes" goto DoIt
if "%PROCEED%"=="yes" goto DoIt
echo Cancelled operation.
pause
exit /B 2
:DoIt
set CURRENT_DRIVE=%~d0
set CURRENT_DIR=%~p0
if "%1"=="" (
set SOURCE=%CURRENT_DRIVE%%CURRENT_DIR%Edgekeywords.sql
) else (
set SOURCE=%~f1
)
set SOURCE=%SOURCE:\=/%
set TEMP_SQL_SCRIPT=%TEMP%\sync_edge_sql_script
pushd
echo Importing edge keywords from %SOURCE%...
cd /D "%HOMEDRIVE%%HOMEPATH%\AppData\Local\Microsoft\Edge Dev\User Data\Default"
echo DROP TABLE IF EXISTS keywords;> %TEMP_SQL_SCRIPT%
echo .read "%SOURCE%">> %TEMP_SQL_SCRIPT%
copy "Web Data" "Web Data.backup"
"sqlite3.exe" -init %TEMP_SQL_SCRIPT% "Web Data" .exit
del %TEMP_SQL_SCRIPT%
popd
if errorlevel 1 pause
```
Runs the exported [[SQL]] script against the `Web Data` file which is actually a [[SQLite]] database containing the *Keywords* table which defines the custom searchEngines.
***
## Appendix: Links
- [[Code]]
- [[Development]]
- [[Windows]]
- [[Microsoft Edge]]
- [[2-Areas/Code/Windows Batch/_README|Batch]]
- [[2-Areas/Code/Windows CMD/_README|CMD]]
- [[Microsoft DOS|MS-DOS]]
- [[Automation]]
- [[2-Areas/MOCs/PowerShell]]
- [[SQLite]]
- [[Databases]]
*Backlinks:*
```dataview
list from [[CMD - Export and Import Edge Custom SearchEngines]] AND -"Changelog"
```