Windows bat 批处理中特殊变量 及 常见错误

Dec 13, 2018 阅读(2781)

标签: Bat Windows

Windows bat 中特殊变量

  • 当前CMD工作目录:%cd%

  • 当前bat 文件所在盘符: %~d0 

  • 当前bat 文件所在目录:%~dp0

  • 当前bat 文件完整路径:%~f0


用 Windows 自带记事本编写 test.bat 脚本:

@echo off
title 测试脚本
echo 当前CMD工作目录:%cd%
echo 当前bat 文件所在盘符:%~d0 
echo 当前bat 文件所在目录:%~dp0
echo 当前bat 文件短文路径:%~sdp0
echo 当前bat 文件完整路径:%~f0

cd %~d0
echo cd到当前bat 文件所在盘符后,CMD默认目录:%cd%

cd %~dp0
echo cd到当前bat 文件所在目录后,CMD默认目录:%cd%

pause

 

bat 脚本常见错误

问题一: 中文乱码

解决: 记事本另存为时指定编码 ANSI 类型。

 

问题二:cd 找不到路径

解决:如果路径中包含空格,则应该将路径加文件名用双引号括起来。

 

问题三:Win 10 执行 .. 上级目录下的xxx.bat 失败,找不到文件

解决:需要将当前CMD工作目录切换到当前你希望的目录下,Win 7不设置CMD工作目录会是当前bat文件所在目录,Win 10 上则可能是 C:\Windows\System32目录。

@echo off
title 安装xxx服务
%~d0
cd %~dp0
echo 当前CMD默认目录:%cd%

../xxx-wrapper.bat install

pause

 


MongoDB学习园