在批处理文件中,如何在变量中获取最后一个标记,无论它是数字还是单词,而不管变量中有多少个标记/单词.
我将把一个参数传递给批处理文件,如下所示:
C:\execbatch.bat "This is example one"
要么
C:\execbatch.bat "This is example number 2"
然后批处理文件将是这样的:
@echo off
SET var=%1
SET last=some command to grab the last token of %var%
echo %last%
exit
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我需要能够始终抓住最后一个令牌,在这些示例中,我想one从示例1和2示例2中获取.
附加信息:
这不是命令行参数,这只是一个简化的例子:
这种情况是我在一个批处理文件中调用一个命令并将其输出发送到一个变量,如下所示:
C:\execbatch.bat memory 要么 C:\execbatch.bat cpu
然后在批处理文件中:
For /F "Tokens=*" %%I in ('c:\monitor.exe -C custom_performance_counter -t %1 -w 80 -c 90') Do Set COMMANDOUTPUT=%%I
Echo %COMMANDOUTPUT%
Set CURRENTVALUE=some command to grab the last token of %COMMANDOUTPUT%
Echo "The current value is …Run Code Online (Sandbox Code Playgroud) 我目前有一个PowerShell脚本,用于复杂的自动Exchange邮箱管理.有时,脚本将同时运行20-40个实例.脚本本身不需要花费太多时间来运行; 但是,该脚本需要ActiveDirectory模块,ServerManager模块和Exchange 2010 PS-snapin.只运行一个脚本实例时,加载这些模块和管理单元需要几秒钟.一旦有多个脚本实例在运行,这当然是复杂的.由于它试图同时加载这些模块20-40次,因此最终朝着极高的资源使用方向前进.
问题是:
有没有办法要么将3个必需的模块加载到内存中,可以这么说,还是有其他方法来优化这个,任何人都可以想到,每次PowerShell的新实例都不需要加载这3个模块脚本被调用?
以下是简化脚本的基础知识(不包括:函数体,if语句,错误处理) - 如果您需要添加任何部分,请告诉我
代码SNIPPIT:
param($ARG1,$ARG2,$ARG3) # Grab arguments from command line
# Load Modules
Import-Module ActiveDirectory
Import-Module ServerManager
Add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010
# Pass Arguments to Variables
$username = $ARG1
# Create Functions
function checkValidADUser {}
function checkOldMailbox {}
function chooseMailstore {}
function createMailbox {}
# Run Functions
checkValidADUser $username
checkOldMailbox $username
chooseMailstore $username
createMailbox $username $mailstore
Run Code Online (Sandbox Code Playgroud) 我需要正则表达式不允许在 javascript 中使用单引号和双引号..