常用cmd代码片段及.net core打包脚本分享
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打包脚本分享的更多相关文章
- IOS开发效率之为Xcode添加常用的代码片段
IOS开发效率之为Xcode添加常用的代码片段 原文地址:http://blog.csdn.net/pingchangtan367/article/details/30041285 tableview ...
- IOS开发-OC学习-常用功能代码片段整理
IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...
- 常用JS代码片段
1.隐藏部分数字,如手机号码,身份证号码 1 2 3 function (str,start,length,mask_char){ return str.replace(str.substr(star ...
- js/jquery/html前端开发常用到代码片段
1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...
- 记录C#常用的代码片段
时间一久,常用的代码会有点忘记,还是贴在这里方便查找! 1.将信息写入文件中 //将字符串写入到文本中 void writeToText(string msg) { try { msg = DateT ...
- 常用javascript代码片段集锦
常用方法的封装 根据类名获取DOM元素 var $$ = function (className, element) { if (document.getElementsByClassName) { ...
- 常用CSS代码片段常见css bug
1.禁止文字被选中 .unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select ...
- 常用torch代码片段合集
PyTorch常用代码段整理合集 本文代码基于 PyTorch 1.0 版本,需要用到以下包 import collections import os import shutil import tqd ...
- TornadoFx学习笔记(1)——常用的代码片段
Tornadofx是基于JavaFx的一个kotlin实现的框架 之后看情况补充.. 1.读取resources文件夹中的文件 如图 想要读取config.properties文件,有两种方法 在cl ...
随机推荐
- 网页中输出HTML代码
>>>>>> mustache.js的解决方案 var entityMap = { '&': '&', '<': '<', '>' ...
- c#多线程同步之EventWaitHandle使用
有这么一个场景,我需要借助windows剪贴板把数据插入到word域中. 实现步骤: 1.把剪贴板数据保存到变量. 2.使用剪贴板实现我们的业务. 3.把变量里的数据存回剪贴板. 但是结果却令人诧异, ...
- 如何卸载wineQQ?
好久没有用ubuntu系统的wineqq了,今天用的时候,提示无法使用,要求官网重新下载新版本, 感觉挺麻烦的,准备卸载,半天卸载不了. 经过努力,最终还是卸载了. 卸载命令: sudo dpkg ...
- 仿QQ发语音、图片选择、表情选择demo
一款仿QQ发语音.图片选择.调用拍照.表情选择的demo git地址:https://github.com/PureLovePeter/pic.git. 喜欢的请 star star star,共 ...
- C#多线程编程(7)--锁
一提到线程同步,就会提到锁,作为线程同步的手段之一,锁总是饱受质疑.一方面锁的使用很简单,只要在代码不想被重入的地方(多个线程同时执行的地方)加上锁,就可以保证无论何时,该段代码最多有一个线程在执行: ...
- FTP站点设置
0x00前言: 应老师今天教的和题目所需 有了今天的博文 0x01准备: windows server 2008 FTP服务 0x02正文: 1.先安装FTP服务 先打开--服务器管理 点击--添加角 ...
- 我的linux学习之路--(二)linux常用命令
1.date 时间管理 电脑主板有电池,所有电脑断电时间正确,rtc linux:rtc 硬件时钟 clock/hwclock 系统时钟(linux操作系统用软件模拟震荡器计算)date看到就是 命令 ...
- NEO从入门到开窗(3) - NEO编译器
一.啰嗦两句 第一节的时候咱说了C#编译完了之后,就该NEO的编译器搞事情了.我们完全可以按这个节奏搞,手动用NEO的编译器neon编译dll文件生成指令码文件.avm.但是NEO团队给我们写智能合约 ...
- 笔记:Maven 项目基本配置
Maven 的基本设置包含项目基本信息和项目信息,基本信息主要用于设置当前包的归属项目.当前项目等,配置文件结构如下: <project xmlns="http://maven.apa ...
- 一次精疲力尽的改bug经历
一.介绍 最近一直在做有关JavaScriptCore的技术需求,上周发现一个问题,当在JavaScriptCore在垃圾回收时,项目会有一定几率发生崩溃.崩溃发生时调用堆栈如下: 图1 调用堆栈 先 ...