Powershell 批处理模板

common.ps1

cls; 
#Global is public
#Script is internal
#Script is Script
#Local is current stack level
#Numbered scopes are from 0..N where each step is up to stack level (and 0 is Local)

$Script:PSScriptRoot =Split-Path -Parent $MyInvocation.MyCommand.Definition
$Script:strDate = Get-Date -Format "yyyyMMdd"
#logging path and method
$Script:logfile = "$PSScriptRoot\log$($strDate).txt"
$Script:log = {$input|Tee-Object -FilePath $logfile -Append}
#commen
$Script:rem = {$Script:i = '';1..75|%{$i += '-'};$i } 
#start
&$rem|&$log
try{ 
<span style="white-space:pre">	</span>#your ps code
<span style="white-space:pre">	</span>$psversiontable|&$log 
<span style="white-space:pre">	</span>$Script:pss = ps
<span style="white-space:pre">	</span>$Script:i = 0
<span style="white-space:pre">	</span>foreach ($ps in $pss)
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>Write-Progress -Activity "on processing..." -status "$ps...$($i.tostring() + '/' + $pss.count.tostring())" -percentcomplete ($i++/($pss.count)*100)
<span style="white-space:pre">		</span>sleep 1
<span style="white-space:pre">	</span>}
}
catch {
<span style="white-space:pre">	</span>"At $(Get-Date -Format “yy-MM-dd HH:mm:ss”) error occured:$_.Exception"|&$log
}finally{
<span style="white-space:pre">	</span>&$rem|&$log
<span style="white-space:pre">	</span>"Finish deploying at $(Get-Date -Format “yy-MM-dd HH:mm:ss”)"|&$log 
}
#notepad "$logfile"

start.bat

@echo off
@cd %cd%
@set vers=2.0
:Entrance
cls
goto Start
:Start
title APOMS SQL Deployment Guide
echo Please select an option from the list with the corresponding key
echo ----------------------------------------------------------------
echo [1] Test
echo [2] Exit
echo ----------------------------------------------------------------
CHOICE /c 12 /M "Choice->"
if errorlevel 2 GOTO exit
if errorlevel 1 GOTO GenA
rem Generate Append
:GenA
cls
echo starting powershell,Generate Append
powershell -file %cd%\common.ps1 -nologo -version %vers% -Mta
echo finished
rem timeout 2
pause
goto :Entrance 

rem Generate Merge
:GenM
cls
echo starting powershell,Generate Merge
rem powershell -file %cd%\module\GenerateMerge.ps1 -nologo -version %vers% -Mta
echo finished
pause
goto :Entrance

rem Depoly
:Depo
cls
echo Caching sqlcmd files to local.
powershell -file %cd%\Mail\Send-AvEmail.ps1 -nologo -version %vers% -Mta
echo finished
pause
goto :Entrance

rem clear
:clea
cls
echo clearing CachedSQLS
rem powershell -file %cd%\module\ClearCachedSQLS.ps1 -nologo -version %vers% -Mta
echo finished
pause
goto :Entrance

rem Set-ExecutionPolicy -ExecutionPolicy remotesigned
:setP
cls
echo Set-ExecutionPolicy -ExecutionPolicy remotesigned
powershell -file %cd%\module\Set-ExecutionPolicy.ps1 -nologo -version %vers% -Mta
echo finished
pause
goto :Entrance

rem Config
:Conf
cls
echo configuring powershell inittial parameters:
echo edit and save to contiue.
rem echo editing  %cd%\module\config
rem notepad %cd%\module\config
echo editing  %cd%\module\config_sys
notepad "%cd%\module\config_sys"
echo testing config_sys
powershell -file %cd%\module\TestConfig.ps1 -nologo -version %vers% -Mta
pause
goto :Entrance

rem Help
:Help
cls
@type %cd%\module\help.txt
pause
goto :Entrance

rem SqlCMD
:SqlC
cls
powershell -file %cd%\module\GenerateSqlcmdFiles-force.ps1 -nologo -version %vers% -Mta
pause
goto :Entrance

rem default
:N
cls
echo Invalid Selection! Try again
@type %cd%\module\help.txt
pause
goto :Entrance 

rem exit
:Exit
exit
时间: 2024-11-03 22:20:09

Powershell 批处理模板的相关文章

32. PowerShell -- 批处理中执行远程的powershell脚本的方法

Copy powershell.ps1 from \\fileserver\scripts  to  "%systemdrive%\Tools\Scripts" local computer; REM powershell.ps1 filerobocopy \\filerserver\Scripts %systemdrive%\Tools\Scripts powershell.ps1 Execute the powershell.ps1 file REM Execute  powers

Django+ PowerShell 管理AD系统

QQ群里的Evan童鞋分享了一个很有意思的博客 http://note.youdao.com/noteshare?id=a60709c00fe88cd09155a2ef50815281  大概是如何利用Flask 调用 Powershell API 实现的一个运维管理系统. 豆子依葫芦画瓢,用Django成功地实现了有一个简单的界面. 直接用Bootstrap模板弄个前端页面,Django 框架,然后后台调用PowerShell API实现查询. 下面是一个简单的demo,输入AD的组,显示组成

windows 自定义批处理BAT/CMD启动Redis等软件

需求:每次开机都需要启动Redis.QQ.IDEA等等好几个软件,手动点击比较无趣.浪费劳动力,所以通过自定义bat文件,进行批量启动. 唯独启动到Redis时出现问题,下面是在bat里运行的路径: D:\Redis\Redis-x64-3.2.100\redis-server.exe redis.windows.conf 发现启动报错提示: Invalid argument during startup: Failed to open the .conf file: redis.windows

利用ARM批量自动化创建SSD多磁盘RAID0虚拟机

在实际生产环境大规模部署的时候,有时需要能批量创建多台Linux虚拟机,并且该虚拟机带多个硬盘,一些数据库环境,比如MySQL和MongoDB等,会需要超过10000de IOPS, 那么创建的虚拟机,最好可以自动化创建RAID 0磁盘阵列,以满足高IOPS的要求,另外Availability Set,NSG,public IP,DNS等等当然是必不可少的. 对于这样一个复杂的需求,有多种选项可以考虑,但各有优劣,有些由于限制,可能无法工作: 使用VMSS,可以快速扩展,自动收缩,但目前并不支持

2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 开始报名了

主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简介: 根据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息技术有限公司将共同在多个城市举办以"传递遥感技术,点燃遥感应用"为主题培训班.拟打造企业型培训基地,不断推进中国遥感产业化进程. 在2011中国遥感应用协会四届三次常务理事会上,协会领导对Esri中国信息技术有限公司在遥感技术和应用推广方面所做的工作予以了充分肯定:2012年协会年会上将&qu

PowerShell基于已有网站模板文件创建网站集

# $Loc = [System.Int32]::Parse(1033) #英文版 $AdminUser = "Domain\User" #管理员账户 $SiteUrl = "http://ServerName/" #新建网站集URL $SiteTitle = "New Site" #新建网站标题 $SiteTemplatePath = "C:\NewSite.wsp" #网站模板文件路径 $SiteTemplateName

Azure PowerShell (11) 使用自定义虚拟机镜像模板,创建Azure虚拟机并绑定公网IP(VIP)和内网IP(DIP)

<Windows Azure Platform 系列文章目录> 前提要求: 1.假设笔者捕获一个Azure虚拟机模板,命名为leistorage 关于Azure虚拟机模板,请参考下图: 2.在Azure PowerShell,执行以下内容: #选择当前订阅 add-azureaccount -environment azurechinacloud #选择当前存储账号,步骤略 Set-AzureSubscription -SubscriptionName '[SubscriptionName]'

用PowerShell代替批处理吧!

这篇文章主要介绍了用PowerShell代替批处理吧!本文讲解了批处理文件的历史.Windows NT 和 Cmd.exe.Windows Script 主机.进入 Windows PowerShell.为什么是时候停止写批处理了等内容,需要的朋友可以参考下 PowerShell应当已经名正言顺地成为批处理(Cmd.exe shell脚本)的替代者了,但是因为一些原因,许多人都不是很情愿抛弃批处理.这篇文章将作为一个系列文章的开始帮助你打破批处理的习惯,向PowerShell进军. 在我进入这些

PowerShell针对SCVMM批量导出模板的描述信息以及导入

SCVMM的模板也会给Windows Azure Pack使用,这个时候如果手头有很多很多的节点需要导入导出,会是非常麻烦的一个事情,手动改的工作量很大. 比如说下面这张图,一个vhdx文件包含至少有名称.系列.版本.操作系统.以及本来路径的名字,另外如果是给Windows Azure Pack使用,可能还包含一个tag.这些属性都需要一一输入,一两个可能你还愿意自己手动修改,但是多了呢?不仅容易出错,挣钱干活的速度也大大降低了.解决这个问题同样使用PowerShell完成,用到的方法不多,依然