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. ECharts组件应用样例代码

    一.从Echarts官网上下载最新版本组件 Echarts是百度开发的开源Web图表组件,界面美观,使用简单.组件下载地址:http://echarts.baidu.com/echarts2/doc/ ...

  2. java容器类2:Map及HashMap深入解读

    Java的编程过程中经常会和Map打交道,现在我们来一起了解一下Map的底层实现,其中的思想结构对我们平时接口设计和编程也有一定借鉴作用.(以下接口分析都是以jdk1.8源码为参考依据) 1. Map ...

  3. java 流详解

    流在Java中是指计算中流动的缓冲区. 从外部设备流向中央处理器的数据流成为“输入流”,反之成为“输出流”. 字符流和字节流的主要区别: 1.字节流读取的时候,读到一个字节就返回一个字节:字符流使用了 ...

  4. Oracle-数据类型为date 日期查询技巧

    date类型是oracle中存储日期类的一种常用类型,其处理也是在数据库使用中比较多需要注意的地方.如我们可以使用to_char函数将其转化为任意时间格式的字符串,也可使用to_date函数转化相应的 ...

  5. MySQL多数据源笔记3-分库分表理论和各种中间件

    一.使用中间件的好处 使用中间件对于主读写分离新增一个从数据库节点来说,可以不用修改代码,达到新增节点数据库而不影响到代码的修改.因为如果不用中间件,那么在代码中自己是先读写分离,如果新增节点, 你进 ...

  6. delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

    delphi 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法 若有更好的,请大神留言我也学习下,感谢! uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ; var  Bi ...

  7. Git -- 分支与合并 (命令行+可视化工具p4merge)

    基本命令 把所有的变化都放在master分支并不是最好的做法. 建议的做法是把变化放在分支里面. 至少应该准备一个feature分支之类的, 把变化都隔离开来, 然后等到所有的功能都稳定之后再合并到m ...

  8. Java设计模式(六)Adapter适配器模式

    一.场景描述 “仪器数据采集器”包含采集数据以及发送数据给服务器两行为,则可定义“仪器数据采集器”接口,定义两方法“采集数据capture”和“发送数据sendData”. “PDF文件数据采集器”实 ...

  9. nodejs简单数据迁移demo

    近期做数据迁移,采用nodejs框架,数据库为mysql.作为一枚菜鸟,在编码过程中,遇到众多奇葩问题,感谢民少给予的支持. 由于旧数据库中的数据,在之前设计中存在众多不合理的情况,因此在数据迁移中, ...

  10. JS面向对象与面向过程

    前言 面向对象编程: 就是将你的需求抽象成一个对象,然后针对这个对象分析其特征(属性)与动作(方法)--这个对象就称之为类 面向过程编程: 特点:封装,就是将你需要的功能放在一个对象里面 ------ ...