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. MySQL服务读取参数文件my.cnf的规律研究探索

    在MySQL中,它是按什么顺序或规律去读取my.cnf配置文件的呢?其实只要你花一点功夫,实验测试一下就能弄清楚,下面的实验环境为5.7.21 MySQL Community Server.其它版本如 ...

  2. Hadoop之Secondary NameNode

    NameNode存储文件系统的变化作为log追加在本地的一个文件里:这个文件是edits.当一个NameNode启动时,它从一个映像文件:FsImage,读取HDFS的状态,使用来自edits日志文件 ...

  3. 开启第一个Node.js的Express项目

    手动创建一个Express.js的应用可大致分为以下步骤: 1.创建文件夹 a. 创建一个项目根文件夹,如helloWord b.在项目的根目录下创建项目的目录结构,依次创建{public,publi ...

  4. 使用MBROSTool 工具制作本地硬盘F3救急模式的方法总结

    前面写了一篇使用MBROSTool 工具制作本地硬盘多启动盘的方法总结.里面就是可以把一些系统安装到硬盘上面方便使用,比如安装PE到硬盘,不过启动的时候会先进入多UDm菜单,然后选择[启动本地系统]后 ...

  5. VirtualBox更改默认路径

    我这几天想把所有的文件夹都改成英文的,避免运行一些软件的时候因为中文路径发生不必要的错误,怎么移动虚拟机呢?直接修改名字会出错的,网上很多方法什么改注册表,什么运行一大串命令,真的很麻烦,不过还是找到 ...

  6. 第一周Python讲课内容--日记

    1.python的发展史,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年...... 2.第一个helloword程序的开始 3.变量的含义,赋值传参数的作 ...

  7. C语言第二次博客作业---分支结构

    一,PTA实验作业 题目1.计算分段函数 本题目要求计算下列分段函数f(x)的值: 1.实验代码 double x,result; scanf("%lf",&x); if( ...

  8. UnderScore.jsAPI记录

    Collection Functions (Arrays or Objects) each         _.each(list, iterator, [context]) 遍历list中的所有元素 ...

  9. 在oracle中,group by后将字符拼接,以及自定义排序

    1.在oracle中,group by后将字符拼接.任务:在学生表中,有studentid和subject两个字段.要求对studentid进行group by分组,并将所选科目拼接在一起.oracl ...

  10. python分支

    if xxx : xxxxx elif xxxx : xxxxx elif xxxx : xxxxx else: xxxxxx 分支可以有效节省CPU的运算时间.避免悬挂else的出现 三元表达式 s ...