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       %~x0echo %%~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

执行结果

在BAT中设置环境变量

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

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

@echo offset 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ubuntu 22.04】安装vscode并配置正常访问应用商店

注意:要去vscode官网下载deb安装包,在软件商店下载的版本不支持输入中文 在ubuntu下用火狐浏览器无法访问vscode官网,此时可以手动进行DNS解析,打开DNS在线查询工具,解析以下主机地址(复制最后一个IP地址&a…

卷积与傅立叶变换

一、卷积 1、一维的卷积 连续: 在泛函分析中,卷积是通过两个函数f(x)f(x)和g(x)g(x)生成第三个函数的一种算子,它代表的意义是:两个函数中的一个(我取g(x)g(x),可以任意取)函数,把g(x)g(x)经过翻转平移,…

OpenCV-Python bindings是如何生成的(2)

OpenCV-Python bindings生成流程 通过上篇文章和opencv python模块中的CMakeLists.txt文件,可以了解到opencv-python bindings生成的整个流程: 生成headers.txt文件 将每个模块的头文件添加到list中,通过一些关键词过滤掉一些不需要扩展的头文件&#x…

tcp状态机-三次握手-四次挥手以及常见面试题

TCP状态机介绍 在网络协议栈中,目前只有TCP提供了一种面向连接的可靠性数据传输。而可靠性,无非就是保证,我发给你的,你一定要收到。确保中间的通信过程中,不会丢失数据和乱序。在TCP保证可靠性数据传输的实现来看&am…

CentOS7开发环境搭建(1)

文章目录BIOS开启VT支持U盘安装系统(2019-03-11)CentOS DNS配置CentOS网络配置配置静态IP克隆虚拟机网卡名称变更 CentOS6.5时间配置安装VMWare-tools用户管理 (2019-03-15 7.6.1810)给一般账号 root 权限Samba服务配置安装必备软件获取本机公网ipyum源和第三方库源管理配置本地…

NS2相关学习——创建Xgraph的输出文件

经过前面学习代码的编写,这一部分,我们要学会如何进行分析,一个很直观的方式就是将结果图形化表示出来。 ns-allinone包的一部分是“xgraph”,一个绘图程序,可用于创建模拟结果的图形表示。 在本节中,将向…

An Energy-Efficient Ant-Based Routing Algorithm for Wireless Sensor Networks (无线传感网中基于蚁群算法的能量有效路由)2

牙说:接着上一篇继续写。论文标题:An Energy-Efficient Ant-Based Routing Algorithm forWireless Sensor Networks作者:Tiago Camilo, Carlos Carreto, Jorge S Silva, Fernando Boavida正文: 2、相关工作可以考虑无线传感器网络…

NS2仿真分析无线网络的攻击防御(1)

这个学期有个选题是NS2仿真分析无线网络的攻击防御,比较有意思的样子,现在来慢慢学一下这个是什么东西。 首先,还是一篇文章(老长老长了),还是全英文的,还是先来分析一下它到底在说什么&#x…

Java集合之HashMap源码分析

以下源码均为jdk1.7 HashMap概述 HashMap是基于哈希表的Map接口的非同步实现. 提供所有可选的映射操作, 并允许使用null值和null健. 此类不保证映射的顺序. 需要注意的是: HashMap不是同步的. 哈希表 哈希表定义: 哈希表是一种根据关键码去寻找值的数据映射结构, 该结构通…

NS2相关学习——可靠的MANET应用程序的Gossip协议分析

好久不写,应该努力啦!老师把这篇论文给了我,现在还不知道它在讲什么,来边翻译边学习吧! 文章链接:https://www.researchgate.net/publication/316844643_Analyzing_Gossip_Protocols_for_Reliable_MANET_Ap…

Java集合之LinkedList源码分析

概述 LinkedLIst和ArrayLIst一样, 都实现了List接口, 但其内部的数据结构不同, LinkedList是基于链表实现的(从名字也能看出来), 随机访问效率要比ArrayList差. 它的插入和删除操作比ArrayList更加高效, 但还是要遍历部分链表的指针才能移动到下标所指的位置, 只有在链表两头的…

lex和yacc环境配置

lex和yacc的使用很简单,但环境配置却是各种问题,本章说明lex和yacc在windows下的环境配置。 软件需求: 系统 win7-64位(win7-32, win8, win10全部通过) c编译器: vs2010(2008,2013,2015也全部通过) lex和yacc编译器&#xff1a…

Java集合之Vector源码分析

概述 Vector与ArrayLIst类似, 内部同样维护一个数组, Vector是线程安全的. 方法与ArrayList大体一致, 只是加上 synchronized 关键字, 保证线程安全, 下面就不具体分析源码了, 具体可以查看ArrayList中的源码分析. Vector源码分析 1.主要字段 2.构造函数 3.增删改查 其他方法…

Gossip协议的P2P会员管理

阅读此论文主要目的在于理解gossip协议及其背后的原理,此部分详细翻译,其余部分看时间 文章标题:Gossip协议的P2P会员管理 作者:Ayalvadi J. Ganesh, Anne-Marie Kermarrec, and Laurent Massoulie Abstract:基于…

Java集合之LinkedHashSet源码分析

概述 LinkedHashSet与HashSet类似, 不同的是LinkedHashSet底层使用LinkedHashMap维护元素插入的顺序. LinkedHashSet继承自HashSet, 只是重写了HashSet的构造方法, 初始化一个LinkedHashMap, 其他均与HashSet相同. LinkedHashSet构造方法 HashSet的构造方法: 以上几乎就是Li…

Java集合之ArrayList源码分析

概述 ArrayList可以理解为动态数组, 根据MSDN的说法, 就是Array的复杂版本. 与数组相比, 它的容量能动态增长. ArrayList是List接口的可变数组的实现. 实现了所有可选列表操作, 允许包括null在内的所有元素. 数组的特点, 查询快增删慢. 每个ArrayList实例都有一个容量, 该容…

Java集合之Hashtable源码分析

概述 Hashtable也是基于哈希表实现的, 与map相似, 不过Hashtable是线程安全的, Hashtable不允许 key或value为null. 成员变量 Hashtable的数据结构和HashMap一样, 采用 数组加链表的方式实现. 几个成员变量与HashMap一样: 方法 Hashtable的方法与HashMap基本一样, 只是 Ha…

视频质量检测中的TP、FP、Reacll、Precision

在看论文《Measuring Vedio QoE from Encrypted Traffic》的时候看到TP(True Positives)、FP(False Positives)、Precison、Recall的概念,这属于数据挖掘方面的内容,学习之后特来记录。 首先,下…

Java集合之LinkedHashMap源码分析

概述 HashMap是无序的, 即put的顺序与遍历顺序不保证一样. LinkedHashMap是HashMap的一个子类, 它通过重写父类的相关方法, 实现自己的功能. 它保留插入的顺序. 如果需要输出和输入顺序相同时, 就选用此类. LinkedHashMap原理 LinkedHashMap是如何保证输入输出顺序的呢? L…

Java集合之HashSet源码分析

概述 HashSet是基于HashMap来实现的, 底层采用HashMap的key来保存数据, 借此实现元素不重复, 因此HashSet的实现比较简单, 基本上的都是直接调用底层HashMap的相关方法来完成. HashSet的构造方法就是创建HashMap: 基本操作 1.添加操作 2.删除操作 3.迭代器 其他方法基本也是调…