.bat获取当前路径

@echo off
setlocal EnableDelayedExpansion
echo 当前正在运行的批处理文件所在路径:!cd!
pause

@echo off

echo 当前目录是:%cd%

pause

@echo off

:: set "abc=%cd%"
echo 当前正在运行的批处理文件所在路径:%~dp0

pause

@echo off
echo 当前的盘符及路径:%~dp0
echo 当前的盘符及路径的短文件名格式:%~sdp0
pause

@echo 取当前文件的上级目录的名称
set a=D:\abc\def ghi\j k\lmn.bat
for %%a in ("%a%") do (
        set ok=%%~dpa
        for /f "delims=" %%b in ("!ok:~0,-1!") do (
                echo %%~nb
        )
)
pause

下面贴一个自己写的bat文件,功能是写入注册表,效果等价于配置系统的环境变量,使得NotePad2可以通过命令行启动

@echo off
Setlocal ENABLEDELAYEDEXPANSION
if exist \Notepad2.reg (
del \Notepad2.reg
)
set var=%cd%
set str=%var%
set chr=\
rem echo %chr%
rem pause
:next
if not "%str%"=="" (
if "!str:~0,1!"=="%chr%" (set var1=%var1%%chr%%chr%)
if not "!str:~0,1!"=="%chr%" (set var1=%var1%%str:~0,1%)
set "str=%str:~1%"
::echo %str%
goto next
)
rem pause
echo Windows Registry Editor Version 5.00>>\Notepad2.reg

echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Notepad2.exe]>>\Notepad2.reg
echo @="%var1%\\Notepad2.exe">>\Notepad2.reg
echo "Path"="%var1%">>\Notepad2.reg

\Notepad2.reg
del \Notepad2.reg

说明:将该文件保存为bat文件后,放入应用程序可执行文件所在文件目录(Notepad2.exe即为应用程序执行文件名),运行即可在App Paths中注入注册信息。

猜你喜欢

转载自tianmaotalk.iteye.com/blog/849332