只是为了澄清,这不是一个真正的问题,对于像我这样寻找答案的人来说更有帮助.
很多应用程序都会创建临时表等,但是当Team Foundation Server在我的测试SQL Server上创建了80多个数据库时,我感到很惊讶.TFS没有正确安装,请让我在它之后清理.由于每个数据库都有一个命名约定,而不是手动删除每个数据库,我记得如何使用游标并编写了我认为有史以来最不明智的T-SQL:
CREATE TABLE #databaseNames (name varchar(100) NOT NULL, db_size varchar(50), owner varchar(50), dbid int, created date, status text, compatibility_level int);
INSERT #databaseNames
exec sp_helpdb;
DECLARE dropCur CURSOR FOR
SELECT name FROM #databaseNames WHERE name like '_database_name_%';
OPEN dropCur;
DECLARE @dbName nvarchar(100);
FETCH NEXT FROM dropCur INTO @dbName;
DECLARE @statement nvarchar(200);
WHILE @@FETCH_STATUS = 0
BEGIN
SET @statement = 'DROP DATABASE ' + @dbName;
EXEC sp_executesql @statement;
FETCH NEXT FROM dropCur INTO @dbName;
END
CLOSE dropCur;
DEALLOCATE …Run Code Online (Sandbox Code Playgroud) 我有一个类似的问题: 如何跳过要求输入密码的Fabric连接? 没有答案.我正在寻找一种方法让Fabric认为任何主机都要求输入密码而不是SSH密钥登录,因为这意味着我连接的用户因为服务器上没有帐户(我是迭代一大堆主机).我试过设定
env.password = None
Run Code Online (Sandbox Code Playgroud)
和
env.password = 'none'
Run Code Online (Sandbox Code Playgroud)
以及
with setting(warn_only=True):
Run Code Online (Sandbox Code Playgroud)
但Fabric一直要求输入密码.有什么方法吗?
所以我写了一系列的函数并将它们插入到一个 PS 模块 (.psm1) 中。其中之一是一个简单的 ErrorAndExit 函数,它将消息写入 STDERR,然后调用exit(1);,这是一种允许轻松重定向错误消息的习惯。在调试我的脚本时,在普通的 PowerShell 或 ISE 中,如果我调用一个函数,该函数又调用 ErrorAndExit,它不仅会退出脚本,还会退出整个 PowerShell 进程。终端和 ISE 都会立即死亡。终端,我可能只是理解,但是ISE?!最令人沮丧的部分当然是在窗口消失之前我看不到错误消息。
我相信这与我的调试方式有关 - 我已经定义了很多发生在链中的函数,并且已经注释掉了启动链的调用。我正在导入脚本并从提示中调用函数。由于脚本是为自动化设计的,在实际使用中杀掉整个PS进程不会有问题,但我需要看看调试输出是什么。
有问题的函数,在 Common.psm1 中:
function errorAndExit([string]$message)
{
logError($message);
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
凡logError通过$message对Write-Error。此调用导致 PS 或 ISE 终止的示例函数:
function branch([string]$branchName, [int]$revision, [string]$jenkinsURL, [switch]$incrementTrunk)
{
Set-Variable -Name ErrorActionPreference -Value Stop;
log("Script starting, parameters branchName=$branchName, revision=$revision, jenkinsURL=$jenkinsURL");
if (-not ($branchName -match "\d{4}\.\d{2}\.\d"))
{
errorAndExit("Provided branch name $branchName is not a valid YYYY.MM.R string");
}
...
Run Code Online (Sandbox Code Playgroud)
我的 Common.psm1 模块正在使用一个简单的 …