bat基础命令

  • 注释:rem 注释~~
  • 输出:echo hello world
  • 接收用户输入:%1 %2,第n个变量就用%n表示
  • 当前脚本路径:%~dp0
  • 当前目录路径:%cd%
  • 设置变量:set currentPath=%cd%
  • 关闭回显:@echo off //隐藏执行路径,@表示包含echo off这条命令也不现实路径
  • 请按任意键继续:pause
  • 调用外部程序:start xxx.exe
  • 等待子程序执行完毕:call start xxx.exe
  • 切换当前目录:cd /d 路径
  • 显示下级子目录名称:dir /b /a:d
  • 显示下级子文件名称:dir /b /a:-d
  • 命令连接符:cmd1&cmd2,在cmd1执行成功后执行cmd2
  • 字符串分割:``
  • 复制:xcopy 要复制的目录 目标目录 /s /e /Q /Y /I

1. 保存当前目录到局部变量并输出

保存:set currentPath=%cd%

输出:echo %currentPath

2. 判断第一个脚本参数是否为ab(/i 忽略大小写),若是则输出success,否则输出参数

if /i %1 == ab (echo success) else (echo %1)

3. 判断当前执行目录(驱动器、文件或文件夹)是否存在是否存在logs文件夹,若不存在则创建

if not exist %cd%\logs md %cd%\logs

如果想要一行写多条语句可以使用()括起来:(if exist .\\test echo exist test dic)&& echo 233

4. 一个简单的for循环打印当前目录文件及文件夹(bat脚本中需要%%,直接执行只需要一个%即可)

for /f "delims=" %%i in ('dir /b .\') do echo %%i

5. for循环里面对变量的赋值

这个默认如果对变量进行赋值打印(echo %变量%)出来的结果始终是第一次的赋值结果,

若要对局部变量赋值则需要启用延迟环境变量扩展(setlocal enabledelayedexpansion)

将其添加到头部后,对变量赋值,然后输出:echo !变量名!。符号由%变更为!

rem 输出当前目录下的文件文件夹
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b .\') do (
set temp=%%i
echo !temp!
)

6. 使用for goto 将字符串(a+b+c-d)以+或者-分割并输出(做点事)

@echo off
setlocal enabledelayedexpansion
set str="a+b+c-d"
:Step1
for /f "delims=-+, tokens=1,*" %%a in (%str%) do (
REM todo case a b c d...
echo %%a
REM 重新赋值并跳转到GOON
set str="%%b"
goto Step1
)

分割后的第一个

@echo off
setlocal enabledelayedexpansion
set str="a;b;c"
for /f "delims=;, tokens=1,*" %%a in (%str%) do (
set s= %%a
echo "first:!s!"
)

7. 重启IIS站点

停止:C:\Windows\System32\inetsrv\appcmd.exe stop site 网站名称

启动:C:\Windows\System32\inetsrv\appcmd.exe start site 网站名称

或者通过写入/删除app_offline.htm

8. asp.net core(2.0) 项目发布到iis脚本

通过写入app_offline.htm文件,请求重定向到此文件解决进程占用问题,发布完成后删除文件请求进入core网站。

将脚本放到core项目的文件夹,路径自行修改,默认输出项目在src/UI文件夹中。打包文件在当前目录的release文件夹下

@echo off
:: 变量赋值,使用!name! setlocal enabledelayedexpansion set currentPath=%~dp0
set tempModulesPath=%currentPath%\temp
set modulesPath=%currentPath%\src\UI\ set str="项目名称1+项目名称2" :GOON
for /f "delims=,+, tokens=1,*" %%i in (%str%) do (
echo --------------------------------------------------------
echo 【%%i】发布开始
set path1=%modulesPath%%%i
set path2=%currentPath%\release\%%i\
set filnePath=!path2!app_offline.htm
echo !path1!
echo 停止【%%i】站点
if not exist !path2! md !path2! cd /d !path1!
echo 执行发布【!path2!】
echo 网站维护中>!filnePath!
call dotnet publish -o !path2!
call xcopy %tempModulesPath% !path2! /s /e /Q /Y /I
del !filnePath!
echo 开启【%%i】站点 echo 【%%i】发布完成
set str="%%j"
goto GOON
) pause

9.发布 dotnet 包到 nuget

  • %NugetToken%为 nuget 密钥的环境变量值
  • 脚本放置到包目录即可
cd ./bin/Release
del *.nupkg /s /q
cd ../../
dotnet build -c Release
cd ./bin/Release
dotnet nuget push *.nupkg -k %NugetToken% -s https://api.nuget.org/v3/index.json
pause

10.删除子级.git目录

@echo off
setlocal enabledelayedexpansion
set CurrentDir=%cd%
for /f "delims=" %%i in ('dir /b /a:d .\') do (
echo 删除 %CurrentDir%/%%i/.git
cd %CurrentDir%/%%i/
rmdir .git /s /q
)
pause

常用cmd代码片段及.net core打包脚本分享的更多相关文章

  1. IOS开发效率之为Xcode添加常用的代码片段

    IOS开发效率之为Xcode添加常用的代码片段 原文地址:http://blog.csdn.net/pingchangtan367/article/details/30041285 tableview ...

  2. IOS开发-OC学习-常用功能代码片段整理

    IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...

  3. 常用JS代码片段

    1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...

  4. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  5. 记录C#常用的代码片段

    时间一久,常用的代码会有点忘记,还是贴在这里方便查找! 1.将信息写入文件中 //将字符串写入到文本中 void writeToText(string msg) { try { msg = DateT ...

  6. 常用javascript代码片段集锦

    常用方法的封装 根据类名获取DOM元素 var $$ = function (className, element) { if (document.getElementsByClassName) { ...

  7. 常用CSS代码片段常见css bug

    1.禁止文字被选中 .unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select ...

  8. 常用torch代码片段合集

    PyTorch常用代码段整理合集 本文代码基于 PyTorch 1.0 版本,需要用到以下包 import collections import os import shutil import tqd ...

  9. TornadoFx学习笔记(1)——常用的代码片段

    Tornadofx是基于JavaFx的一个kotlin实现的框架 之后看情况补充.. 1.读取resources文件夹中的文件 如图 想要读取config.properties文件,有两种方法 在cl ...

随机推荐

  1. 依赖反转原则DIP 与 asp.net core 项目结构

    DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repo ...

  2. C#枚举数值与名称的转换实例分享

    首先建立一个枚举: 复制代码代码如下: /// <summary>    /// 颜色    /// </summary>    public enum ColorType   ...

  3. EasyUI Parser 解析器

    Parser(解析器)应用场景 1,自动调用parser 只要我们书写相应的class,easyui就能成功的渲染页面,这是因为解析器在默认情况下,会在dom加载完成的时候($(docunment). ...

  4. Linux源码-等待队列注释

    等待队列 Linux中了等待队列的毒,代码中充斥着等待队列.不信你翻翻代码. 等待队列的唤醒我们这里叫激活.免得和线程唤醒混淆. 数据结构 头结点wait_queue_head_t的结构 struct ...

  5. python函数名称空间

    一.命名空间概念 命名空间(name space),若变量x=1,1存放在内存中,命名空间是存放名字x.x与1绑定关系的地方.命名空间分三种: locals:函数内的名称空间,包括局部变量和形参 gl ...

  6. 【原创】Linux服务器集群通过SSH无密码登录

    SSH 无密码授权访问slave集群机器 1. 安装SSH,所有集群机器,都要安装SSH环境介绍:  Master : CNT06BIG01 192.168.3.61 SLAVE 1: CNT06BI ...

  7. Mycat 分片规则详解--ER关系表分片

    ER模型是实体关系模型,基本元素是实体.关系和属性,Mycat 针对ER关系表的切分规则中,使得有相互依赖的表能够按照某一个规则切分到相同的节点上,避免垮库 Join 关系查询,下面的示例为订单(or ...

  8. Java多线程JUC

    1. volatile 关键字 多线程访问的时候,一个比较严重的问题就是内存不可见,其实在内存访问的时候每一个线程都有一个自己的缓冲区,每次在做修改的时候都是从主存取到数据,然后放到自己的缓冲区中,在 ...

  9. RxJS速成 (下)

    上一部分: http://www.cnblogs.com/cgzl/p/8641738.html Subject Subject比较特殊, 它即是Observable又是Observer. 作为Obs ...

  10. nodejs利用superagent爬取数据的简单例子

    爬取世界银行统计数据 安装:npm install superagent /** * Created by zh on 16-9-7. */ var request = require('supera ...