1. 程式人生 > >Win7 下以管理員身份執行批處理檔案,切換JDK版本

Win7 下以管理員身份執行批處理檔案,切換JDK版本

Win7下 切換JDK的批處理命令

1. 批處理檔案(必須以管理員身份執行)內容如下

@echo off

rem --- Base Config 配置JDK的安裝目錄 ---
:init 
set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8
set JAVA_HOME_1_7=C:\Program Files\Java\jdk1.7

:start 
echo 當前使用的JDK 版本: 
java -version 
echo. 
echo ============================================= 
echo jdk版本列表 
echo
1.8 echo 1.7 echo ============================================= :select set /p opt=請選擇jdk版本: if %opt%==1.8 ( set TARGET_JAVA_HOME=%JAVA_HOME_1_8% ) if %opt%==1.7 ( set TARGET_JAVA_HOME=%JAVA_HOME_1_7% ) echo 當前選擇的Java路徑:%TARGET_JAVA_HOME% wmic ENVIRONMENT where "name='JAVA_HOME'" delete wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%TARGET_JAVA_HOME%
" rem --- set path --- set jhb=%TARGET_JAVA_HOME%\bin set pt=%Path% call set pt=%%pt:%jhb%;=%% call set pt=%%pt:%jhb%=%% wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%jhb%;%pt%" rem 下面一句進入當前批處理檔案所在的路徑。因為,以管理員身份處理時,當前路徑為%root%Systems32 cd /d %~dp0 rem -- refresh env ---
call RefreshEnv echo 請按任意鍵退出! pause>nul @echo on

2. 執行切換的RefreshEnv.exe檔案 (copy到當前資料夾): 下載並解壓RefreshEnv到當前bat目錄

備註

  1. 批處理檔案改變環境變數
  • JAVA_HOME, 設定為目標版本JDK路徑,需要管理員許可權

    rem --- set JAVA_HOME  ---
    wmic ENVIRONMENT where "name='JAVA_HOME'" delete
    wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%TARGET_JAVA_HOME%"
  • PATH, 增加 %JAVA_HOME%下的bin 路徑到 %PATH%環境變數,需要管理員許可權

    rem --- set PATH ---
    set jhb=%TARGET_JAVA_HOME%\bin
    set pt=%Path%
  1. 在以管理員身份執行時候,當前路徑為 %System_root%/systems32, 需要將路徑
    切換回當前批處理檔案所在目錄,以運行同路徑下的檔案 RefreshEnv.exe 以重新整理環境變數
  • 改變路徑的命令為:
    • cd %~dp0

關於%~dp0的批處理命令的詳細解釋

%~dp0 “d”為Drive的縮寫,即為驅動器,磁碟、“p”為Path縮寫,即為路徑,目錄

cd是轉到這個目錄,不過我覺得 cd /d %~dp0 還好些. 適用於 批處理檔案不在系統盤。

選項語法:

~0 - 刪除任何引號("),擴充 %0

%~f0 - 將 %0 擴充到一個完全合格的路徑名(“f”是file,即檔案)

%~d0 - 僅將 %0 擴充到一個驅動器號

%~p0 - 僅將 %0 擴充到一個路徑

%~n0 - 僅將 %0 擴充到一個檔名(“n”是name 檔名)

%~x0 - 僅將 %0 擴充到一個副檔名

%~s0 - 擴充的路徑只含有短名(“s”為Short,短的)

%~a0 - 將 %0 擴充到檔案的檔案屬性(“a”為attribute,即屬性)

%~t0 - 將 %0 擴充到檔案的日期/時間(“t”time)

%~z0 - 將 %0 擴充到檔案的大小(Size 大小)

%~$PATH:0 - 查詢列在路徑環境變數的目錄,並將 %0 擴充

到找到的第一個完全合格的名稱。如果環境變數名

未被定義,或者沒有找到檔案,此組合鍵會擴充到

空字串

可以組合修飾符來得到多重結果:

%~dp0 - 僅將 %0 擴充到一個驅動器號和路徑

%~nx0 - 僅將 %0 擴充到一個檔名和副檔名

%~fs0 - 僅將 %0 擴充到一個帶有短名的完整路徑名

%~dp$PATH:0 - 查詢列在路徑環境變數的目錄,並將 %I 擴充

到找到的第一個驅動器號和路徑。

%~ftza0 - 將 %0 擴充到類似輸出線路的 DIR

%0為當前批處理檔案

如果0換成1為第一個檔案,2為第2個

%0代指批處理檔案自身

%~d0 是指批處理所在的碟符

%~dp0 是碟符加路徑

cd /d %~dp0 就是進入批處理所在目錄了

參考文獻

相關推薦

Win7 管理員身份執行處理檔案切換JDK版本

Win7下 切換JDK的批處理命令 1. 批處理檔案(必須以管理員身份執行)內容如下 @echo off rem --- Base Config 配置JDK的安裝目錄 --- :init set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8 set JAVA_HO

如何在DOS管理員身份執行命令?

管理員 info -s ont window 命令 com 管理 轉換 原創 普通User的DOS窗口: 以管理員身份運行的DOS窗口: 轉換(Windows10系統下): 13:11:55 2018-10-18如何在DOS下以管理員身份執行命令?

win7/10中管理員身份執行bat指令碼時獲取當前檔案所在目錄

此命令適用於bat雙擊正常開啟,以管理員開啟閃退的情況 以下為轉載,地址http://blog.chinaunix.net/uid-27000874-id-3224772.html 知道windows的bat指令碼很強大,但是具體命令向來很少接觸,今天在win7上執行自己

vs2005 生成的應用程式 在win7管理員許可權執行

在開啟UAC的時候,在win7中執行程式預設是以一種許可權較低的方式執行的,但是在這種方式下,我們有些操作會失敗(比如修改登錄檔,監聽埠,往系統目錄寫入檔案等),要實現這些操作,就需要我們以管理員許可權執行程式了。 當然,只有在程式上右鍵,選擇“以管理員執行”就可以,不過如

管理員身份執行bat指令碼時獲取當前檔案所在目錄

以管理員身份執行bat指令碼時,獲取當前檔案所在目錄     知道windows的bat指令碼很強大,但是具體命令向來很少接觸,今天在win7上執行自己以前寫的一個安裝mysql資料庫到系統服務的指令碼時,遇到一些問題,下面記錄一下。<?xml:namespa

win7 處理檔案預設管理員身份執行及清除IE快取指令碼

1、指令碼預設以管理員身份執行 在win7中,批處理檔案有時需要以管理員身份執行,如清除 IE 快取的指令碼,若不使用管理員許可權,常常會卡死。 批處理檔案以管理員身份執行很簡單,可惜,竟然很長時間不知道怎麼去設定,原來總是在“相容性”裡設定以管理員身份執行,可是批處理檔案

結合VBS,實現處理自動管理員身份執行

這是我在百度回答知友時寫的,用於自動以管理員身份執行命令或程式→百度原址 批處理程式碼,功能:自動以管理員身份執行 test.exe: MS DOS start admin.vbs runas /user:administrator test.e

C# WinForm判斷Win7程式是否管理員身份執行

如果程式不是以管理員身份執行,操作本地檔案會提示:System.UnauthorizedAccessException異常 Vista 和 Windows 7 作業系統為了加強安全,增加了 UAC(使用者賬戶控制) 的機制,如果 UAC 被開啟,使用者即使是以管理員許可權登

Win10Visual Studio 2015編譯報“無法註冊程式集***dll- 拒絕訪問。請確保您正在管理員身份執行應用程式。對登錄檔項”***“的訪問被拒絕。”問題解決

原來在Win7下Visual Studio2008跑的好好的程式,現在在Win10下編譯報“無法註冊程式集dll- 拒絕訪問。請確保您正在以管理員身份執行應用程式。對登錄檔項”“的訪問被拒絕。”的錯誤。報錯資訊明面上看是讓你用管理員身份執行Visual Studio,然後開啟工程編譯就好了。

解決IDM“警告:您在管理員身份執行IDM在該模式IDM無法接管瀏覽器的下載事件”的問題。

執行,輸入gpedit.msc確定,把如圖的那個改成“已啟用” 造成該問題的原因是有些電腦系統內建管理員賬戶Administrator,所以開啟所有軟體都是以管理員許可權,跳過了UAC(使用者賬戶控制),如上修改組策略後,即可解決。

VS 中引入app.manifest(c#程式在win7及以上windows版本管理員許可權執行方法)

開啟VS2005、VS2008、VS2010、VS2012、VS2013、VS2015工程,檢視工程資料夾中的Properties資料夾下是否有app.manifest這個檔案;如沒有,按如下方式建立:滑鼠右擊工程在選單中選擇“屬性”,點選工程屬性的“安全性”標籤,在安全性

解決win7的ie8瀏覽器管理員身份執行才不會崩潰的方法

    自己的是win7系統,ie8出現問題,以普通使用者開啟時,會崩潰;以管理員身份執行,才可以。        方案一:    打算以管理員身份登入電腦,這樣電腦的所有軟體都可以以管理員身份執行啦 cmd=>以管理員身份執行=》命令列輸入“net user  ad

Win7 C# 控制檯程式寫登錄檔被拒需要管理員身份執行

      最近寫了一個控制檯程式,將程式的相關資訊註冊到登錄檔中。但是執行的時候提示寫登錄檔被拒。電腦的當前使用者沒有管理員的許可權。         如何給控制檯程式賦管理員的許可權呢?    

Lsrunase普通域用戶管理員身份執行某個軟件

exe nas pil mpi -o strong window spa 方法 應用場景:例如金蝶軟件的有些功能必須使用管理員身份執行方可使用 使用方法:1. 將lsrunase文件夾內的lsrunase.exe復制到電腦的C:\Windows\System32下2

c# 設定管理員身份執行開發的軟體 visual studio 2017

用C#開發的軟體需要獲得管理員許可權對C盤檔案進行更改。此文更改C#的manifest檔案以達到雙擊執行開發出的軟體時提示以管理員身份執行的效果。 1.建立manifest檔案。 右擊專案-> 可在此更改檔名(字尾不能更改)-> 2.開啟新建立的manifes

Ubuntu伺服器中建立新使用者並且允許該使用者管理員身份執行指令

目錄 1. 新建可登入圖形使用者介面的使用者 2. 允許該使用者以管理員身份執行指令 sudo” 是Unix/Linux平臺上的一個非常有用的工具,允許為非根使用者賦予一些合理的“權利”,讓他們執行一些只有根使用者或特許使用者才能完成的任務,從而減少根使用者的登陸次數和管理

在VS中如何讓C#語言編寫的程式自動管理員身份執行

 在Vista或Win7或Win8或Win10系統上exe程式預設不是以管理員身份執行的,它會被UAC(使用者帳戶控制)阻止訪問系統某些功能,如修改登錄檔操作、操作硬碟上的檔案等。但是有時我們確實需要程式在開始執行時就是以管理員身份執行的,這時我們在VS中需進行以下操作:

Windows 10 上強制Visual Studio管理員身份執行

Windows 10 的一個既安全又蛋疼之處是UAC的行為被改變了。以往在Windows 7中,只要關閉了UAC,自己的帳號又是本機管理員組的,任何程式都會以管理員身份啟動。然而,在Windows 8上,我們不能關閉UAC,那樣的話Metro程式就一個都啟動不了了。 作為微

命令列裡管理員身份執行msi檔案

以管理員身份執行cmd進入msi檔案目錄,輸入命令msiexec /package 檔名,我的輸入:msiexec /package mpich2-1.4-win-x86-64.msi然後,程式以管理員身份進入安裝,接著你就可以成功安裝軟體啦!

管理員身份執行msi檔案

鍵盤輸入win+r,執行輸入regedit,開啟登錄檔編輯器找到計算機\HKEY_CLASSES_ROOT\Msi.Package\shell,右鍵點選shell,選擇新建->項,命名為“runas”,選中runas項,雙擊右側視窗的“預設”,在彈出的視窗中數值資料處輸