我在 powershell 中的脚本运行:test.ps1 -dbo test1 => 这有效,它进入提供的数据库
SELECT name FROM sys.databases
where name not in ('master', 'tempdb', 'model', 'msdb', 'test1');
Run Code Online (Sandbox Code Playgroud)
但如果我想输入多个数据库,例如test.ps1 -dbo test1, test2, test3 => 这将被读取为一个字符串
SELECT name FROM sys.databases
where name not in ('master', 'tempdb', 'model', 'msdb', 'test1, test2, test3');
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Powershell中将字符串分割成单独的,就像这样:
SELECT name FROM sys.databases
where name not in ('master', 'tempdb', 'model', 'msdb', 'test1', 'test2', 'test3');
Run Code Online (Sandbox Code Playgroud)
代码:
Param(
[Parameter(Mandatory=$false, ValueFromPipeline=$true)]
[Alias("dbo")]
[String[]]
$databaseName
)
$dbquery = @"
SELECT name FROM sys.databases
where name not in ('master', …Run Code Online (Sandbox Code Playgroud) 如何格式化正则表达式的输出或以特定格式返回正则表达式输出。
例如:我有一个程序test_program:5.4.3.2.11111
我只想获得这个值:5.4.3.2.11111
如果我使用这个功能:
import re
get_number = "test_program:5.4.3.2.11111"
number = re.findall('\d+', get_number)
Run Code Online (Sandbox Code Playgroud)
输出是:
['5', '4', '3', '2', '11111']
Run Code Online (Sandbox Code Playgroud)
但由于格式不正确,我无法将其传递给另一个变量。
我用过这样的东西:
['5', '4', '3', '2', '11111']
Run Code Online (Sandbox Code Playgroud)
并且输出格式正确,但是如果任何数字更改,例如5将更改为10或11111将更改为1111112,这将无法正常工作。
有没有更好的解决方案可以以正确的格式从字符串中获取数字,并且不会发生变化?