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. win7上Android环境搭建以及调试

    工欲善其事必先利其器,好记性不如烂笔头.要学习一门新的语言,首先必须得先搭环境,否则没法实践.如果之前按照网上的提示,搭建过环境,而且环境比较复杂的话,我相信隔很长一段时间后,就会忘记,到真正用的时候 ...

  2. 让wordpress标签云显示文章数的正确方法

    先看一下效果 在百度经验找到一个教程,可惜,根据实践发现方法是错误的, 百度经验上的代码: 1 2 3 4 5 6 7 8 9 10 11 12 //标签tag所包含的文章数量 function Ta ...

  3. nodejs-url网址解析的好帮手

    HTTP协议中url和uri的区别. 每个url都是uri,但是不是每个uri都是url. URI:是统一资源的标识符,web上可用的每种资源如HTML文档.图像.视频片段.程序等都是一个URI来定位 ...

  4. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  5. javascript中的null,对象系统还是非对象系统?

    1.一直以来的认知 在我学习js的过程中,爱民老师的绿皮书里将js的类型系统分成了两类: 其一是元类型系统:由typeof运算来检测 其二是对象类型系统:是元类型的object的一个分支 而null这 ...

  6. 希尔排序(shell‘ sort)

    希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进.希尔排序又叫缩小增量排序 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录 ...

  7. SpringBoot 自定义Banner

    在2016年的最后一天,借用Spring Boot的Banner向各位程序猿同仁们问候一声:Happy New Year. 接下来我们就来介绍一下这个轻松愉快的自定义banner功能.实现的方式非常简 ...

  8. 网络通信 --> 互联网协议(一)

    互联网协议 一.概述 如何分层有不同的模型,有的模型分七层,有的分四层.这里介绍把互联网分成五层. 最底下的一层叫做"实体层"(Physical Layer),最上面的一层叫做&q ...

  9. phpcms v9 搜索结果列表页时间显示1970问题解决方案

    对于喜欢用phpcms v9 的小伙伴来说,在调用时间时,总会出现时间1970这样的问题,对于这个问题,网上的说法很多,内容页时间显示通常不会问题,搜索结果页就不行了,通过总结,发现使用{format ...

  10. java中使用ReentrantLock锁中的Condition实现三个线程之间通信,交替输出信息

    本文直接附上源代码,如下是自己写的一个例子 面试题需求: 使用Condition来实现 三个线程 线程1 线程2 线程3 三个交替输出 [按照 线程1(main)-->线程2-->线程3] ...