Advertisement
marioq

usefulTools.cmd

Nov 16th, 2023 (edited)
1,139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 17.93 KB | None | 0 0
  1. @echo off
  2. :: cls
  3. :: da fare??
  4. ::  my out ip address
  5. ::   for /f "tokens=1-10* delims=," %a in ('curl -s "https://api.myip.com"') do @set "q=%a" & for /f "tokens=1-10* delims=:" %A in ('set q') do @echo my_ip %B
  6. ::   for /f "tokens=1-10* delims=," %a in ('curl -s "https://api.myip.com"') do @set "q=%a" & for /f "tokens=1-10* delims=:" %A in ('set q') do @set "my_ip=%B"&<nul set /p=%my_ip% >my_out_ip.txt
  7. ::
  8. ::  my lan ip4
  9. ::    for /f "tokens=1-10* delims=:" %a in ('ipconfig ^| findstr /i ipv4') do @<nul set /p=-%b
  10. ::::::::::::::::::::::::::::::::::::::
  11. ::::::::::::::::::::::::::::::::::::::
  12. ::::::::::::::::::::::::::::::::::::::
  13.  
  14.  
  15. setlocal
  16. set "TIME_start=%time%"
  17. set "THIS_file_full_path="%~dpnx0" %*"
  18. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  19. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  20. ::::
  21. ::::
  22. ::::
  23. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  24. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  25.  
  26. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  27. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  28. ::::::::::::: Etichette attive solo se richamate da CALL :::::::::::::::::::::::
  29. :msg00
  30. if not [%0]==[:msg00] goto :msg00_end
  31.     echo -----------------
  32.     echo    visualizza con il comando "set my_"
  33. goto :EOF
  34. :msg00_end
  35.  
  36. :msg01
  37. if not [%0]==[:msg01] goto :msg01_end
  38.     echo -----------------
  39.     echo  Questa riga di comando resetta-elimina tutte le var "my_"
  40.     echo  impostate da questo script "%~nx0" %1
  41.     echo\
  42.     echo    for /f "delims=^=" %%A in ('@set my_') do @set "%%A="
  43.     echo -----------------
  44.     echo.  %THIS_file_full_path%
  45.     echo  Avviato alle %TIME_start%
  46.     echo     Fine alle %time%
  47. goto :EOF
  48. :msg01_end
  49. ::::::::::::: Etichette attive solo se richamate da CALL fine ::::::::::::::::::
  50. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  51. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  52.  
  53.  
  54. if [%1]==[] (
  55.     goto :HELP
  56. ) else (
  57.     for /f "tokens=1,2 delims=:" %%A in ('chcp') do (
  58.         set "my_CHCP_OLD=%%B"
  59.     )
  60.     chcp 65001 >nul
  61.     REM chcp 1252 >nul
  62.     REM chcp 850 >nul
  63.     REM cmdow @ /min
  64.     goto :START
  65. )
  66.  
  67. :HELP
  68. echo  %THIS_file_full_path%
  69. echo   manca il parametro corretto
  70. echo   ^|"%~dpnx0" my_ip4 to_file
  71. echo   ^|  con il parametro "to_file" l'output
  72. echo   ^|  é salvato nel file "%USERPROFILE%\myIP4.txt"
  73. echo    "%~dpnx0" where_is_ff
  74. echo    "%~dpnx0" my_date
  75. echo    "%~dpnx0" user_is_admin
  76. echo   ^|"%~dpnx0" run_as_admin
  77. echo   ^|  %%2="path al file da eseguire come Administrators"
  78. echo   ^|  %%3="eventuali parametri da passare"
  79. echo   ^|  Spazi vuoti devono essere racchiusi tra " "
  80. call :msg00
  81. call :msg01
  82. set my_ERROR=16041959
  83. call :END_00 %my_ERROR% & goto :EOF
  84.  
  85. :START
  86.  
  87. if /i [%1]==[my_ip4] (
  88.     set "IP4output=%USERPROFILE%\myIP4.txt"
  89.     goto :%1
  90. )
  91.  
  92. if /i [%1]==[where_is_ff] (
  93.     goto :%1
  94. )
  95.  
  96. if /i [%1]==[my_date] (
  97.     goto :%1
  98. )
  99.  
  100. if /i [%1]==[user_is_admin] (
  101.     goto :%1
  102. )
  103.  
  104. if /i [%1]==[run_as_admin] (
  105.     if [%2]==[] (
  106.         echo\
  107.         echo   Percorso completo al file da eseguire
  108.         echo   manca il file da eseguire come Administrators
  109.         echo   ^| %~nx0 run_as_admin "path\Full File name"
  110.         echo\
  111.         goto :HELP
  112.     )
  113.     if [%~x2]==[] (
  114.         echo\
  115.         echo   [%2] nome file non corretto
  116.         echo   manca l'estensione
  117.         echo\
  118.         goto :HELP
  119.     )
  120.     if exist "%~2" (
  121.         goto :%1
  122.     ) else (
  123.         echo\  ...%2
  124.         echo   manca il percorso al file
  125.         echo   da eseguire come Administrators
  126.         echo\
  127.     )
  128. )
  129.  
  130. goto :HELP
  131.  
  132. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  133. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  134. :::::::::::::: my_ip4 :::::::::::::::::::::::::::::::::::::::::::::::::::
  135. :::::::::::::: my_ip4 :::::::::::::::::::::::::::::::::::::::::::::::::::
  136. :::::::::::::: my_ip4 :::::::::::::::::::::::::::::::::::::::::::::::::::
  137. :my_ip4
  138. ( endlocal
  139.     set "IP4output=%IP4output%"
  140.     set "TIME_start=%TIME_start%"
  141.     set "THIS_file_full_path=%THIS_file_full_path%"
  142. )
  143. setlocal enabledelayedexpansion
  144. if /i [%2]==[to_file] set "to_file=%2"
  145. REM set "output=%USERPROFILE%\myIP4.txt"
  146. :: il file  di output viene usato da "%myscripts%\bginfo\myBgInfo.cmd"
  147. :: per generare l'immagine per il deskTop
  148.  
  149. set "IP4=-"
  150.  
  151. REM for /f "usebackq tokens=1-2* delims=:" %%a in (`ipconfig ^| findstr /i /r /c:"ipv4[. : ]*[0-9]"`) do set "IP4=-%%b!IP4: =!"
  152. for /f "usebackq tokens=1-2* delims=:" %%a in (`ipconfig ^| findstr /i /r /c:"ipv4[. : ]*[0-9]*[.][0-9]*[.][0-9]*[.][0-9]*$"`) do (
  153.     set "IP4=!IP4!%%b -"
  154. )
  155.  
  156. if "%IP4%"=="-" set IP4=- x.x.x.x IP4 NON DOSPONIBILE -
  157. :: tutto su una riga senza CR-LF
  158. if defined to_file echo. | set /p "IP4=%IP4%" > "%IP4output%"
  159.  
  160. echo #####################
  161. echo "%~dpnx0" %*
  162. if not defined to_file (
  163.     echo.- - - - - - - - - - - - - - - - - -
  164.     echo.   ^|con il parametro "to_File"
  165.     echo.   ^| "%~dpnx0" my_IP4 to_File
  166.     echo.   ^|l'output viene salvato nel file
  167.     echo.   ^|"%IP4output%"
  168.     echo.- - - - - - - - - - - - - - - - - -
  169. )
  170.  
  171. if defined to_file (
  172.     echo.- - - - - - - - - - - - - - - - - -
  173.     echo.   ^|output salvato nel file.
  174.     echo.   ^|"%IP4output%"
  175.     echo.- - - - - - - - - - - - - - - - - -
  176. )
  177. set IP4output=
  178. echo #####################
  179. echo.   return MY_IP4==%IP4%
  180.  
  181. ( endlocal
  182.     set "my_IP4=%IP4%"
  183.     call :msg00
  184.     call :msg01
  185.     set "IP4output="
  186.     set "TIME_start="
  187.     set "THIS_file_full_path="
  188.     call :END_00 %my_ERROR%
  189.     goto :EOF
  190. )
  191. :::::::::::::: my_ip4 end :::::::::::::::::::::::::::::::::::::::::::::::::::
  192. :::::::::::::: my_ip4 end :::::::::::::::::::::::::::::::::::::::::::::::::::
  193. :::::::::::::: my_ip4 end :::::::::::::::::::::::::::::::::::::::::::::::::::
  194. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  195. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  196.  
  197.  
  198.  
  199. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  200. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  201. :::::::::::::: dov'é firefox?? ::::::::::::::::::::::::::::::::::::::::::
  202. :::::::::::::: dov'é firefox?? ::::::::::::::::::::::::::::::::::::::::::
  203. :::::::::::::: dov'é firefox?? ::::::::::::::::::::::::::::::::::::::::::
  204. :where_is_ff
  205. set FIREFOX_exe_PATH=
  206. set FIREFOX_PATH=
  207. set FIREFOX_exe=firefox.exe
  208. set ERROR_FF=200
  209.  
  210. if exist "%appdata%\mozilla\firefox\profiles.ini" (
  211.     set "FIREFOX_PROFILES=%appdata%\mozilla\firefox\"
  212. )
  213.  
  214. if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" (
  215.     set "FIREFOX_exe_PATH=%ProgramFiles%\Mozilla Firefox\firefox.exe"
  216.     set "FIREFOX_PATH=%ProgramFiles%\Mozilla Firefox\"
  217. )
  218.  
  219. if not defined FIREFOX_exe_PATH (
  220.     for /F "tokens=2 delims=^=" %%A in ('set ProgramFiles') do (
  221.         for /f "tokens=*" %%G in ('where /r "%%A" %FIREFOX_exe% ^2^>nul') do (
  222.             set "FIREFOX_exe_PATH=%%~fG"
  223.             set "FIREFOX_PATH=%%~dpG"
  224.         )
  225.     )
  226. )
  227.  
  228. if not defined FIREFOX_exe_PATH (
  229.     if "%ProgramW6432%"=="%ProgramFiles%" (
  230.         goto :where_is_FF00
  231.     )
  232. )
  233. if not defined FIREFOX_exe_PATH (
  234.     for /F "tokens=*" %%M IN ('where /r "%ProgramW6432%" %FIREFOX_exe% ^2^>nul') do (
  235.         set "FIREFOX_exe_PATH=%%~fM"
  236.         set "FIREFOX_PATH=%%~dpM"
  237.     )
  238. )
  239.  
  240. :where_is_FF00
  241. if not defined FIREFOX_exe_PATH (
  242.     echo %THIS_file_full_path%
  243.     echo    nei percorsi d'installazione dei programmi
  244.     echo    Firefox non c'é
  245.     set ProgramW6432 2>nul
  246.     set ProgramFiles 2>nul
  247.     set /a ERROR_FF+=10
  248.     goto :where_is_ff_END
  249. )
  250. if defined FIREFOX_exe_PATH (
  251.     set ERROR_FF=0
  252.     echo %THIS_file_full_path%
  253.     echo    return    my_FIREFOX_PATH=%FIREFOX_PATH%
  254.     echo              my_FIREFOX_exe_PATH=%FIREFOX_exe_PATH%
  255.     if defined FIREFOX_PROFILES (
  256.         echo              my_FIREFOX_PROFILES=%FIREFOX_PROFILES%
  257.     ) else (
  258.         set /a ERROR_FF+=10
  259.         echo    ######### no profiles.ini in "%appdata%\mozilla\firefox\"
  260.     )
  261.     call :msg00
  262.     call :msg01
  263.     goto :where_is_ff_END
  264. )
  265.  
  266. :where_is_ff_END
  267. if not "%1"=="where_is_ff" goto :END_00
  268. ( endlocal
  269. set "my_FIREFOX_PATH=%FIREFOX_PATH%"
  270. set "my_FIREFOX_exe_PATH=%FIREFOX_exe_PATH%"
  271. set "my_FIREFOX_PROFILES=%FIREFOX_PROFILES%"
  272. set my_ERROR=%ERROR_FF%
  273. call :END_00 %my_ERROR%
  274. goto :EOF
  275. )
  276. :::::::::::::: dov'é firefox?? fine :::::::::::::::::::::::::::::::::::::::::
  277. :::::::::::::: dov'é firefox?? fine :::::::::::::::::::::::::::::::::::::::::
  278. :::::::::::::: dov'é firefox?? fine :::::::::::::::::::::::::::::::::::::::::
  279. :::::::::::::: dov'é firefox?? fine :::::::::::::::::::::::::::::::::::::::::
  280. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  281. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  282.  
  283.  
  284.  
  285. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  286. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  287. ::::::::::date e ora come le voglio io ::::::::::::::::::::::::::::::::::::::
  288. ::::::::::date e ora come le voglio io ::::::::::::::::::::::::::::::::::::::
  289. ::::::::::date e ora come le voglio io ::::::::::::::::::::::::::::::::::::::
  290. ::::::::::date e ora come le voglio io ::::::::::::::::::::::::::::::::::::::
  291. :my_date
  292.  
  293. REM for /f "tokens=1-5 delims= " %%a in ( 'wmic path win32_localtime get day^,dayofweek^,month^,year ^| findstr /R [0-9]' ) do (
  294.     REM set DAY=%%a
  295.     REM set DAY_OF_WEEK=%%b
  296.     REM set MONTH_N=%%c
  297.     REM set YEAR=%%d
  298. REM )
  299. :::: https://superuser.com/questions/331220/wmic-path-what-wmic-class-what
  300. REM wmic path Win32_TimeZone get /format:list
  301. REM wmic path Win32_UTCTime get /format:list
  302. set my_ERROR=0
  303. for /f "tokens=1-11 delims=^=" %%A in ('wmic path win32_localtime get /format:list') do (
  304.     if not %B[==[ (
  305.         set _%%A=%%B
  306.     )
  307. )
  308.  
  309. if defined _Month (
  310.     if %_Month%==1 set MONTH_NAME=gennaio
  311.     if %_Month%==2 set MONTH_NAME=febbraio
  312.     if %_Month%==3 set MONTH_NAME=marzo
  313.     if %_Month%==4 set MONTH_NAME=aprile
  314.     if %_Month%==5 set MONTH_NAME=maggio
  315.     if %_Month%==6 set MONTH_NAME=giugno
  316.     if %_Month%==7 set MONTH_NAME=luglio
  317.     if %_Month%==8 set MONTH_NAME=agosto
  318.     if %_Month%==9 set MONTH_NAME=settembre
  319.     if %_Month%==10 set MONTH_NAME=ottobre
  320.     if %_Month%==11 set MONTH_NAME=novembre
  321.     if %_Month%==12 set MONTH_NAME=dicembre
  322. ) else (
  323.     set /a my_ERROR+=100
  324. )
  325. if defined _DayOfWeek (
  326.     if %_DayOfWeek%==0 set DAY_NAME=domenica
  327.     if %_DayOfWeek%==1 set DAY_NAME=lunedì
  328.     if %_DayOfWeek%==2 set DAY_NAME=martedì
  329.     if %_DayOfWeek%==3 set DAY_NAME=mercoledì
  330.     if %_DayOfWeek%==4 set DAY_NAME=giovedì
  331.     if %_DayOfWeek%==5 set DAY_NAME=venerdì
  332.     if %_DayOfWeek%==6 set DAY_NAME=sabato
  333.     if %_DayOfWeek%==7 set DAY_NAME=domenica
  334. ) else (
  335.     set /a my_ERROR+=101
  336. )
  337. :my_date_END
  338.  
  339. if not "%1"=="my_date" goto :END_00
  340. REM "wmic path win32_localtime get /format:list" non inizializza Milliseconds
  341. REM PRENDO I VALORI DA %time% e %date%
  342. REM PER VALORIZZARE _TIME_serial _DATE_serial ... .. .  .   .     .
  343. REM formato localizzato della data da "reg import myregPARETO-User.reg"
  344. set "_CURRENT_date=%date%§%time: =0%"
  345. set "_Milliseconds="
  346. set "_Hour="
  347. set "_Minute="
  348. set "_Second="
  349. for /f "tokens=1-8 delims=/:,§" %%a in ("%_CURRENT_date%") do (
  350.     REM echo  %%cYEAR %%bMONTH %%aDAY
  351.     REM echo  %%dHOURS %%eMIN %%fSEC %%gMILLs
  352.     set "_DATE_serial=%%c%%b%%a"
  353.     set "_Hour=%%d"
  354.     set "_Minute=%%e"
  355.     set "_Second=%%f"
  356.     set "_Cent=%%g"
  357.     set "_TIME_serial=%%d%%e%%f%%g"
  358. )
  359. REM set "_TIME_serial=%_TIME_serial: =0%"
  360.  
  361. set "my_DATE=%DAY_NAME% %_Day% %MONTH_NAME% %_Year%"
  362. set "my_TIME=%_Hour%:%_Minute%:%_Second%,%_Cent%%"
  363. REM echo "%~dpnx0" %1
  364. echo %THIS_file_full_path%
  365. echo    return    "my_MONTH_N=%_Month%"
  366. echo              "my_MONTH_NAME=%MONTH_NAME%"
  367. echo              "my_DAY_N=%_DayOfWeek%"
  368. echo              "my_DAY_IN_MONTH=%_Day%"
  369. echo              "my_DAY_NAME=%DAY_NAME%"
  370. echo              "my_YEAR=%_Year%"
  371. echo              "my_DATE=%my_DATE%"
  372. echo              "my_TIME=%my_TIME%"
  373. echo    segue per "my_HOUR:%_Hour%" "my_MINUTE:%_Minute%" "my_SECOND:%_Second%" "my_CENT_SEC,%_Cent%"
  374. echo              "my_QUARTER_IN_YEAR" "my_WEEK_IN_MONTH"... .. .  .   .    .
  375. call :msg00
  376. call :msg01
  377.  
  378.  REM _Day=17
  379. REM _DayOfWeek=2
  380. REM _Hour=14
  381. REM _Milliseconds=NO_NO_VALUE
  382. REM _Minute=43
  383. REM _Month=5
  384. REM _Quarter=2
  385. REM _Second=45
  386. REM _WeekInMonth=3
  387. REM _Year=2022
  388.  
  389. ( endlocal
  390. set "my_MONTH_NAME=%MONTH_NAME%"
  391. set "my_MONTH_N=%_Month%"
  392. set "my_DAY_NAME=%DAY_NAME%"
  393. set "my_DAY_N=%_DayOfWeek%"
  394. set "my_DAY_IN_MONTH=%_Day%"
  395. set "my_HOUR=%_Hour%"
  396. set "my_MINUTE=%_Minute%"
  397. set "my_SECOND=%_Second%"
  398. set "my_CENT_SEC=%_Cent%"
  399. set "my_MILLI_SEC=%_Milliseconds%"
  400. set "my_YEAR=%_Year%"
  401. set "my_WEEK_IN_MONTH=%_WeekInMonth%"
  402. set "my_QUARTER_IN_YEAR=%_Quarter%"
  403. set "my_WEEK_IN_MONTH=%_WeekInMonth%"
  404. set "my_DATE=%my_DATE%"
  405. set "my_TIME=%my_TIME%"
  406. set "my_DATE_serial=%_DATE_serial%"
  407. set "my_TIME_serial=%_TIME_serial%"
  408. call :END_00 %my_ERROR%
  409. goto :EOF
  410. )
  411. :::::::::::::: date e ora come le voglio io fine ::::::::::::::::::::::::::::::::::::::
  412. :::::::::::::: date e ora come le voglio io fine ::::::::::::::::::::::::::::::::::::::
  413. :::::::::::::: date e ora come le voglio io fine ::::::::::::::::::::::::::::::::::::::
  414. :::::::::::::: date e ora come le voglio io fine ::::::::::::::::::::::::::::::::::::::
  415. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  416. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  417.  
  418.  
  419. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  420. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  421. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ??? ::::::::::::::::::::
  422. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ??? ::::::::::::::::::::
  423. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ??? ::::::::::::::::::::
  424. :user_is_admin
  425. set my_ERROR=300
  426. set "is_admin=no" & set "my_USER_IS=no"
  427. net session /list >nul 2>&1 && set "is_admin=%errorlevel%"
  428. if [%is_admin%]==[0] (
  429.     set "my_USER_IS=Administrator"
  430.     for /f "delims=* tokens=1,2*" %%A in ('net user %username% ^| findstr /i /c:"admin"')  do (
  431.         set "my_USER_IS=%%B"
  432.         set my_ERROR=0
  433.     )
  434. ) else set my_ERROR+=10
  435.  
  436. if [%is_admin%]==[no] (
  437.     for /f "delims=* tokens=1,2*" %%A in ('net user %username% ^| findstr /i /c:"users"')  do (
  438.         set "my_USER_IS=%%B"
  439.         set my_ERROR=1
  440.     )
  441. ) else set my_ERROR+=11
  442.  
  443. set "my_USER_IS=%my_USER_IS: =%"
  444.  
  445. if not "%1"=="user_is_admin" goto :END_00
  446.  
  447. echo %~dpnx0 %1
  448. echo ----------
  449. echo  Il valore della variabile "%%my_USER_IS%%"
  450. echo  si riferisce all'utente locale di questo computer "%computername%"
  451. echo  "%username%"=="%%my_USER_IS%%"
  452. echo   errorlevel=0 ... .. .Administrators
  453. echo   errorlevel=1 ... .. .Users
  454. echo ----------
  455. echo    return    "my_USER_IS=%my_USER_IS%"
  456. echo               errorlevel=%my_ERROR%
  457. call :msg00
  458. call :msg01
  459. ( endlocal
  460. set "my_USER_IS=%my_USER_IS%"
  461. call :END_00 %my_ERROR%
  462. goto :EOF
  463. )
  464. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ???  fine ::::::::::::::
  465. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ???  fine ::::::::::::::
  466. :::::::::::::: l'utente é fa parte del gruppo "Administrators" ???  fine ::::::::::::::
  467. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  468. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  469.  
  470.  
  471.  
  472. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  473. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  474. :::::::::::::: esegue come Administratos ::::::::::::::::::::::::::::::::::::::::::::::
  475. :::::::::::::: esegue come Administratos ::::::::::::::::::::::::::::::::::::::::::::::
  476. :::::::::::::: esegue come Administratos ::::::::::::::::::::::::::::::::::::::::::::::
  477. :run_as_admin
  478. :: https://ss64.com/vb/syntax-elevate.html
  479. REM setlocal
  480. REM set _NOME=%~snx2
  481. REM set _PATH=%~sp2
  482. REM set _DRIVE=%~sd2
  483. REM echo DRIVE %_DRIVE%
  484. REM echo PATH %_PATH%
  485. REM echo NOME %_NOME%
  486.  
  487. :: %2 percorso completo trasformato in nome breve
  488. set "_EXE=%~sdpnx2"
  489. :: %3 rimosso virgolette
  490. set "_EXE3= "
  491. if not .%3==. (
  492.     set "_EXE3=%~3 %~4 %~5 %~6 %~7 %~8 %~9"
  493.     REM set "_EXE3=%3"
  494.     REM echo ####### %*
  495.     REM echo @@@@@@@ %* ^| _EXE3=="%_EXE3%"
  496.     REM set COUNT=1
  497.     REM for /f "tokens=* delims= " %%A in ('echo %%*') do (
  498.         REM echo call :RUN_AS_ADMIN_OPT %%A
  499.         REM call :RUN_AS_ADMIN_OPT %%A
  500.     REM )
  501. )
  502.  
  503. :RUN_AS_ADMIN_OPT
  504. if not "%~0"==":RUN_AS_ADMIN_OPT" goto :RUN_AS_ADMIN_OPT_end
  505.     set "_EXE3=%_EXE3% %1"
  506. :RUN_AS_ADMIN_OPT_end
  507.  
  508. set "_CMD=%comspec%"
  509. set "_EXE_FULL=%_EXE% %_EXE3%"
  510. set _VBS=%temp%\%~sn0.vbs
  511. echo Set UAC = CreateObject^("Shell.Application"^) > "%_VBS%"
  512. echo UAC.ShellExecute "%_CMD%","/K ""%_EXE_FULL%""", "", "runas", 1 >> "%_VBS%"
  513. cscript //nologo %_VBS% & set my_ERROR=%errorlevel%
  514. :: echo my_ERROR=%my_ERROR%
  515. REM echo\%my_ERROR% %~f0 -%1 -%2 -%_EXE3%
  516. echo\
  517. echo "%~dpnx0" %1
  518. echo  %username% prova ad eseguire come *Administrators
  519. echo    %2 %3
  520. echo  Utente del gruppo Administrators
  521. echo  prova ad eseguire lo script
  522. echo %2 %_EXE3%
  523. REM if defined _EXE3 echo    3-%~3 ^| _EXE3== %_EXE3%
  524. REM echo    "%~dpnx0" %1 %2 %~3
  525. title %username% prova ad eseguire come ^*Administrators %2 %~3
  526. echo\
  527.  
  528. del "%_VBS%"
  529.  
  530. ::endlocal & set "my_EXE=%_EXE_FULL%" & call :END_00 %my_ERROR% & goto :EOF
  531. ( endlocal
  532. call :END_00 %my_ERROR%
  533. goto :EOF
  534. )
  535. :::::::::::::: esegue come Administratos fine :::::::::::::::::::::::::::::::::::::::::
  536. :::::::::::::: esegue come Administratos fine :::::::::::::::::::::::::::::::::::::::::
  537. :::::::::::::: esegue come Administratos fine :::::::::::::::::::::::::::::::::::::::::
  538. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  539. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  540.  
  541.  
  542.  
  543.  
  544. :END_00
  545. REM if not [%0]==[:END_00] goto :EOF
  546. REM echo.
  547. REM echo ---start END_00
  548. REM echo --#%~dpnx0 - %1 #
  549. REM echo --#%0 - %1 #
  550. REM echo --#ERROR=%my_ERROR%
  551. REM echo -----end END_00
  552. chcp %my_CHCP_OLD% >nul
  553. set "my_CHCP_OLD="
  554. set "my_MSG="
  555. set "my_ERROR="
  556. endlocal
  557. exit /b %1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement