bat腳本以管理員身份運行時,目錄沒有定位到當前目錄問題的解決方法

来源:https://www.cnblogs.com/feiquan/archive/2019/02/13/10368960.html
-Advertisement-
Play Games

我們時常使用bat腳本去處理一些事情,有事bat中的命令需要以管理員的身份運行,但是運行後文件的目錄自動定位到了C:\Windows\system32下,而不再腳本所在的目錄下。 這是我的文件目錄,WindosActive.bat腳本會讀取WindosSerial.ini中的文件信息,但是腳本中的有 ...


我們時常使用bat腳本去處理一些事情,有事bat中的命令需要以管理員的身份運行,但是運行後文件的目錄自動定位到了C:\Windows\system32下,而不再腳本所在的目錄下。

這是我的文件目錄,WindosActive.bat腳本會讀取WindosSerial.ini中的文件信息,但是腳本中的有些命令要以管理員的身份才可以正常運行。如果直接右鍵管理員運行的目錄會定位到C:\Windows\system32。然後提示WindosSerial.ini文件不存在。

我們用echo %cd% 輸出當前目錄:

那麼有沒有其他方法呢?

使用變數擴充 的方法,讀取出當前文件的目錄,然後cd過去:

@echo off 
if not "%OS%"=="Windows_NT" exit
title WindosActive

echo 當前目錄:%cd%
echo 變數擴充: %~dp0
cd /D %~dp0
echo 更改後的目錄:%cd%
pause

 

有關其他變數擴充的知識:

@echo off 
if not "%OS%"=="Windows_NT" exit
title WindosActive

echo.
echo 將 ^%%I 擴充到一個完全合格的路徑名
echo %~f0
echo.
echo 僅將 ^%%I 擴充到一個驅動器號 
echo %~d0
echo.
echo 僅將 ^%%I 擴充到一個路徑 
echo %~p0
echo.
echo 僅將 ^%%I 擴充到一個驅動器和路徑 
echo %~dp0
echo.
echo 僅將 ^%%I 擴充到一個文件名 
echo %~n0
echo.
echo 僅將 ^%%I 擴充到一個文件擴展名 
echo %~x0
echo.
echo 擴充的路徑只含有短名 
echo %~s0
echo.
echo 將 ^%%I 擴充到文件的文件屬性 
echo %~a0
echo.
echo 將 ^%%I 擴充到文件的日期/時間 
echo %~t0
echo.
echo 將 ^%%I 擴充到文件的大小 
echo %~z0
echo.
echo 查找列在路徑環境變數的目錄,並將 ^%%I 擴充到找到的第一個完全合格的名稱。如果環境變數名 未被定義,或者沒有找到文件,此組合鍵會擴充到 空字元串 
echo %~$PATH:0
echo.
echo 組合擴展:
echo 驅動器+路徑+文件名 +文件擴展名 +文件屬性 +日期/時間 +文件的大小 
echo %~dpnxatz0
echo.
echo 驅動器+路徑+文件名 +文件擴展名 +文件屬性 +日期/時間 +文件的大小+ 短名 
echo %~dpnxatzs0
echo.

pause

其中的變數擴充可以隨意組合。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. eureka相關異常 1.1. 異常信息 1.2. 解決 1. 上述異常我在兩處地方遇到過,一是在集成txLCN分散式服務時,用到eureka註冊的時候,需要額外添加兩個配置類 否則也會報上述錯誤 2. 二是再junit的Test類中,用@SpringBootTest創建測試的時候,若是報上述 ...
  • 前邊我們提到了客戶端加域的操作方法,本章為大家補充域客戶端退域的操作過程,包含圖形化、netdom remove、Powershell三種方法,具體內容如下:圖形化退域方法:1.Win鍵,電腦右鍵屬性:2.系統界面在電腦名稱、域和工作組設置欄選擇"更改設置":3.在系統屬性界面,選擇"更改":4... ...
  • 解決windows憑據無法保存的問題1: 運行-gpedit.msc(組策略)-電腦配置-管理模板-系統-憑據分配 雙擊右側”允許分配保存的憑據用於僅NTLM伺服器身份驗證“ 在彈出的視窗中選中“已啟用“,單擊”顯示“,輸入鍵值”TERMSER/*“ 保存退出後,運行”gpupdate /forc ...
  • 目錄 1. 公鑰私鑰簡介 2. 使用密鑰進行ssh免密登錄 2.1. 實驗環境 2.2. 開始實驗 3. ssh的兩種登陸方式介紹 3.1. 口令驗證登錄 3.2. 密鑰驗證登錄 4. 總結 1、公私鑰簡介與原理 公鑰和私鑰都屬於非對稱加密演算法的一個實現,這個加密演算法的信息交換過程是: 1) 持有公 ...
  • Docker 常用命令 login/logout docker login [OPTIONS] [SERVER] 登錄到Docker鏡像倉庫,預設為Docker Hub。 docker logout [OPTIONS] [SERVER] 退出Docker鏡像倉庫。 OPTIONS 說明 u:登錄用戶 ...
  • Linux-通過inotifywait監控目錄及文件 inotifywait命令的使用此處就不寫了;可以參考文章:https://www.cnblogs.com/martinzhang/p/4126907.html inotifywait命令是工具包 inotify-tools 裡面的,可以直接通過 ...
  • 記錄詳細過程以備使用 一、準備安裝 為了確保Oracle資料庫11g能夠成功安裝,您需要做好準備工作,例如檢查網路配置、更改Linux內核參數、創建用戶Oracle、創建安裝目錄、設置用戶Oracle的shell限制以及設置用戶根的環境變數。 檢查要安裝的分區 本主題描述如何在安裝Oracle資料庫 ...
  • Microsoft Exchange Server中存在一個特權提升漏洞。成功利用此漏洞的攻擊者可以獲得與Exchange伺服器的任何其他用戶相同的許可權。這可能允許攻擊者執行諸如訪問其他用戶的郵箱之類的活動。利用此漏洞需要在受影響的環境中啟用和使用Exchange Web服務(EWS)和推送通知。要... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...