Advertisement
marioq

notepad++OpenCmdHere.cmd

Jul 15th, 2022
1,163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 6.40 KB | None | 0 0
  1. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3. ::::
  4. ::::     https://npp-user-manual.org/docs/config-files/#editing-configuration-files
  5. ::::     https://npp-user-manual.org/docs/preferences/#shortcut-mapper
  6. ::::     https://npp-user-manual.org/docs/editing/#other-editing-commands-and-shortcuts
  7. ::::
  8. ::::    questo script inserisce la riga %SEARCH_THIS%
  9. ::::    SEARCH_THIS=<Command name="Apri terminale cmd nella dir del file.." Ctrl="no" Alt="yes" Shift="yes" Key="90">cmd /k cmdForNotepad++.cmd &quot;$(FULL_CURRENT_PATH)&quot;</Command>
  10. ::::    nel file %FILE_IN%
  11. ::::    FILE_IN=%appdata%\notepad++\shortcuts.xml
  12. ::::
  13. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  14. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  15. ::::    OLD-DOS stupid scripting language
  16. ::::    OLD-DOS stupido linuaggio di script
  17. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  18. @echo off
  19. setlocal EnableDelayedExpansion
  20. set START_TIME=%date% - %time%
  21.  
  22. echo \\\\\\\\\\\\\\\\\\\\\\\\\\
  23. echo  %~f0  start %START_TIME%
  24.  
  25. set  "FILE_IN=%appdata%\notepad++\shortcuts.xml"
  26. :::: FOR TEST
  27. REM set  "FILE_IN=C:\Users\PARETO-User\Desktop\shortcuts.xml"
  28.  
  29. :::: FOR TEST
  30. REM set "FILE_OUT=%appdata%\notepad++\shortcuts.xml"
  31. REM set "FILE_OUT=C:\Users\PARETO-User\Desktop\shortcuts.xml"
  32. set "FILE_OUT=%FILE_IN%"
  33.  
  34. if not exist "%FILE_IN%" (
  35.     echo\
  36.     echo    "FILE_IN" %FILE_IN%
  37.     echo     non c'é il file
  38.     echo\
  39.     goto :END_00
  40. )
  41.  
  42. set /a COUNT=0
  43. set /a N_IN=0
  44. set "SEARCH_THIS=        <Command name="Apri terminale cmd nella dir del file.." Ctrl="no" Alt="yes" Shift="yes" Key="90">cmd /k notepad++ExecCMD.cmd &quot;$(FULL_CURRENT_PATH)&quot;</Command>"
  45. set "SEARCH_Q=%SEARCH_THIS%"&    REM sostituisco i caratteri indesiderati
  46. set "SEARCH_Q=%SEARCH_Q:<=§%"
  47. set "SEARCH_Q=%SEARCH_Q:>=€%"
  48. set "SEARCH_Q=%SEARCH_Q:"='%"
  49. set "SEARCH_Q=%SEARCH_Q:&=#%"
  50. set "SEARCH_Q=%!!%"
  51. set "SEARCH_Q=%SEARCH_Q:!=±%"
  52.  
  53. set "INSERT_BEFORE_THIS=    </UserDefinedCommands>"
  54. set "INSERT_BEFORE_Q=%INSERT_BEFORE_THIS:<=§%"&    REM sostituisco i caratteri indesiderati
  55. set "INSERT_BEFORE_Q=%INSERT_BEFORE_Q:>=€%"
  56.  
  57.  
  58. for /f "usebackq tokens=* delims=^" %%a in ("%FILE_IN%") do (
  59.     set /a COUNT+=2
  60.     set "LINE_!COUNT!=%%a"
  61.     call :ECHO_LINE LINE_!COUNT! "%FILE_IN%" "%FILE_OUT%"
  62. )
  63.  
  64. ::::::::::::::::::::::::::::
  65. ::::::::::::::::::::::::::::
  66.  
  67. if .!INSERT!==.yes (
  68.     set /a COUNT=!COUNT!+1
  69.     set "LINE_%N_IN%=%SEARCH_THIS%"
  70.  
  71.     set /a LINE_MODULO=N_IN%%2
  72.     set /a LINE_SHOW_N=%N_IN%/2+!LINE_MODULO!
  73.     REM echo  %N_IN% / 2 + !LINE_MODULO! == !LINE_SHOW_N!
  74.  
  75.     set "FILE_IN_BACKUP=%FILE_IN_PATH%%FILE_IN_NAME%.ORI"
  76.  
  77.     copy /y "%FILE_IN%" /b "!FILE_IN_BACKUP!" /b 1>nul
  78.     if not %errorlevel% EQU 0 (
  79.         echo\
  80.         echo    Copia di "%FILE_IN%"
  81.         echo          in "!FILE_IN_BACKUP!"
  82.         echo    Copia non riuscita
  83.         echo    controlla i permessi
  84.         echo\
  85.         goto :END_00
  86.     )
  87.    
  88.     REM empty file
  89.     @echo off>"%FILE_OUT%"
  90.     for %%G in ("%FILE_OUT%") do (
  91.         set "FILE_OUT_SIZE=%%~zG"
  92.     )
  93.     REM echo -%FILE_IN_SIZE%-%FILE_OUT_SIZE%-!FILE_OUT_SIZE!-
  94.     if !FILE_OUT_SIZE! GTR 0 (
  95.         echo\
  96.         echo    Impossibile modificare il file
  97.         echo    "%FILE_OUT%"
  98.         echo    controlla i permessi
  99.         echo\
  100.         goto :END_00
  101.     )
  102.  
  103.     for /L %%M in (0,1,!COUNT!) do (
  104.         if defined LINE_%%M (
  105.             echo\!LINE_%%M!>>"%FILE_OUT%"
  106.         )
  107.     )
  108.  
  109.     set "LINE_IN_SHOW_HERE=!LINE_%N_IN%!"
  110.     set "LINE_IN_SHOW_HERE=!LINE_IN_SHOW_HERE:~8!"
  111.     set "LINE_IN_SHOW_HERE=!LINE_IN_SHOW_HERE:~0,85!"
  112.  
  113.     set "INSERT_BEFORE_THIS_SHOW_HERE=%INSERT_BEFORE_THIS%"
  114.     set "INSERT_BEFORE_THIS_SHOW_HERE=!INSERT_BEFORE_THIS_SHOW_HERE:~4!"
  115.  
  116.     echo\
  117.     echo    nel file %FILE_IN%
  118.     echo    ho inserito la riga "!LINE_SHOW_N!"
  119.     echo\"!LINE_IN_SHOW_HERE!... .. .  .   .continua"
  120.     echo    prima della riga
  121.     echo\"!INSERT_BEFORE_THIS_SHOW_HERE!"
  122.     echo\
  123.     echo    .......il file originale "%FILE_IN%"
  124.     echo    è stato copiato nel file "!FILE_IN_BACKUP!"
  125.     echo\
  126.  
  127.     tasklist /FI "IMAGENAME eq notepad++.exe" | findstr notepad++.exe >nul
  128.     if !errorlevel! EQU 0 (
  129.         echo    per rendere effettive le modifiche
  130.         echo    chiudi e riapri notepad++
  131.         echo\
  132.     ) else (
  133.         echo    apri notedad++ per attivare le modifiche
  134.         echo\
  135.     )
  136.  
  137.     echo\>>"!FILE_IN_BACKUP!"
  138.     echo\^<^^!-- >>"!FILE_IN_BACKUP!"
  139.     echo %date% - %time% >>"!FILE_IN_BACKUP!"
  140.     echo   Questo file >>"!FILE_IN_BACKUP!"
  141.     echo !FILE_IN_BACKUP! >>"!FILE_IN_BACKUP!"
  142.     echo   è la copia di >>"!FILE_IN_BACKUP!"
  143.     echo %FILE_IN% >>"!FILE_IN_BACKUP!"
  144.     echo   A cui è stata aggiunta la riga "!LINE_SHOW_N!">>"!FILE_IN_BACKUP!"
  145.     echo "!LINE_IN_SHOW_HERE!... .. .  .   .continua">>"!FILE_IN_BACKUP!"
  146.     echo   prima della riga>>"!FILE_IN_BACKUP!"
  147.     echo "!INSERT_BEFORE_THIS_SHOW_HERE!">>"!FILE_IN_BACKUP!"
  148.     echo\>>"!FILE_IN_BACKUP!"
  149.     echo   Per ripristinare questo file, rimuovi questo commento >>"!FILE_IN_BACKUP!"
  150.     echo   e copia questo file >>"!FILE_IN_BACKUP!"
  151.     echo "!FILE_IN_BACKUP!" >>"!FILE_IN_BACKUP!"
  152.     echo   nel file >>"!FILE_IN_BACKUP!"
  153.     echo "%FILE_IN%" >>"!FILE_IN_BACKUP!"
  154.     echo\--^>>>"!FILE_IN_BACKUP!">>"!FILE_IN_BACKUP!"
  155.  
  156. ) else (
  157.     if .!INSERT!==.no (
  158.         echo\
  159.         echo    il file "%FILE_IN%"
  160.         echo    non é stato modificato.
  161.         echo\
  162.     )
  163. )
  164.  
  165. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  166. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  167. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  168.  
  169. :ECHO_LINE
  170. ::::  aspetto
  171. ::::  %1 == LINE_!COUNT!
  172. ::::  %2 == "%FILE_IN%"
  173. ::::  %3 == "%FILE_OUT%"
  174. ::::  call :ECHO_LINE LINE_!COUNT! "%FILE_IN%" "%FILE_OUT%"
  175. if not [%0]==[:ECHO_LINE] goto :ECHO_LINE_END
  176.  
  177. if not defined FILE_IN_PATH set "FILE_IN_PATH=%~dp2"
  178. if not defined FILE_IN_NAME set "FILE_IN_NAME=%~nx2"
  179. if not defined FILE_IN_SIZE set "FILE_IN_SIZE=%~z2"
  180. if not defined FILE_OUT_SIZE set "FILE_OUT_SIZE=%~z3"
  181. if not defined INSERT set INSERT=yes
  182.  
  183.     set "QQ=!%1!"
  184.     set "KK=%QQ:<=§%"
  185.     set "KK=%KK:>=€%"
  186.     set "KK=%KK:"='%"
  187.     set "KK=%KK:&=#%"
  188.     set "KK=%!!%"
  189.     set "KK=%KK:!=±%"
  190.  
  191.     if ["%KK%"]==["%SEARCH_Q%"] (
  192.         set INSERT=no
  193.     ) else (
  194.         set TEST_INSERT=yes&    REM  Variabile non usata
  195.     )
  196.  
  197.     if ["%KK%"]==["%INSERT_BEFORE_Q%"] set /a N_IN=%COUNT%-1
  198.  
  199. if [%0]==[:ECHO_LINE] goto :EOF
  200. :ECHO_LINE_END
  201.  
  202.  
  203. :END_00
  204. echo  %~f0  start %START_TIME%
  205. echo  %~f0    end %date% - %time%
  206. echo //////////////////////////
  207. endlocal
  208. goto :EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement