CMD命令之BAT脚本路径信息

CD命令解疑

cd是chdir的缩写,命令详解参见cd /?

可以看到/d参数的解释如下:
使用 /D命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。

通常我们在xp系统中打开cmd窗口时,会显示
C:\Documents and Settings\Administrator>
如果我们执行如下命令,发现目录依然还是在C:\Documents and Settings\Administrator
C:\Documents and Settings\Administrator>cd d:\tomcat6.0.18
C:\Documents and Settings\Administrator>
此时,我们键入d:,不但会切换到d盘,而且会切换到d:/tomcat6.0.18的目录
C:\Documents and Settings\Administrator>cd d:\tomcat6.0.18
C:\Documents and Settings\Administrator>d:
D:\tomcat6.0.18>
下面语句我们就能看到/d参数的作用了。发现加了/d参数之后直接切换到d盘的tomcat6.0.18目录了。
C:\Documents and Settings\Administrator>cd /d d:\tomcat6.0.18
D:\tomcat6.0.18>

结论:不加/d参数只能在同一驱动器的目录之间切换,加上/d参数则能在不同驱动器之间的目录之间切换

DOS批处理中%cd%和%~dp0的区别

在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。

  • %cd% 可以用在批处理文件中,也可以用在命令行中; %cd%的内容是可以被改变的,其内容为命令的执行路径或批处理文件的执行路径。
  • %~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个
@echo off
echo %%cd%%      %cd%

echo %%0         %0
echo %%~d0       %~d0
echo %%~p0       %~p0
echo %%~dp0      %~dp0
echo %%~n0       %~n0
echo %%~x0       %~x0
                 
echo %%~f0       %~f0
echo %%~s0       %~s0
echo %%~fs0      %~fs0
echo %%~a0       %~a0
echo %%~t0       %~t0
echo %%~z0       %~z0
echo %%~ftza0    %~ftza0
echo %%~$PATH:0  %~$PATH:0

CMD命令之BAT脚本路径信息_第1张图片

在BAT中设置环境变量

在软件安装后,要么自动添加环境变量,要么是手动添加相应的环境变量。对于大的系统绿色安装,在BAT中设置临时环境变量是必不可少的,比如MinGW启动脚本等。

以下是绿色安装启动appium的脚本:

@echo off

set CLASSPATH=.;%~dp0\Java\jdk1.8.0_66\lib
set JAVA_HOME=%~dp0\Java\jdk1.8.0_66
set JDK_HOME=%~dp0\Java\jdk1.8.0_66
set ANDROID_HOME=%~dp0\Android\android-sdk
set PATH=%~dp0\Android\android-sdk\platform-tools;%~dp0\Java\jdk1.8.0_66\bin;%~dp0\Android\android-sdk;%PATH%

adb connect 127.0.0.1:62001
"Android\android-sdk\platform-tools\adb.exe" devices

"%~dp0\node_modules\node.exe"  "%~dp0\node_modules\appium\bin\appium.js" -U 127.0.0.1:62001

在这里设置了java,android相关的环境变量,将软件包拷贝到其他机器即可运行脚本启动appium

定制特定环境变量的终端

快捷方式

如squid终端将其bin路径设置到PATH环境变量中,其快捷方式目标如下:

C:\Windows\System32\cmd.exe /K "color 02 & cd /dD:\Squid\ & set PATH=D:\Squid\bin;%PATH%"

node的终端环境

@echo off

%ComSpec% /K "color 02 & set PATH=D:\Program Files\node-v6.11.3-win-x64;%PATH% & set NODE_PATH=D:\Program Files\node-v6.11.3-win-x64\node_modules"

cmd.exe常用参数如下:

  • /c 执行 String 指定的命令,然后停止。
  • /k 执行 String 指定的命令并继续。

将cmd添加到右键

cmd.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\在此处打开命令窗口]

[HKEY_CLASSES_ROOT\Directory\Background\shell\在此处打开命令窗口\command]
@="\"C:\\Windows\\System32\\cmd.exe\" \"--working-dir\" \"%v.\""

启用与禁用Administrator用户

管理员执行:

  • 禁用 net user administrator /active:no
  • 启用 net user administrator /active:yes

你可能感兴趣的:(------BAT脚本)