如何在PowerShell中否定条件测试?
例如,如果我想检查目录C:\ Code,我可以运行:
if (Test-Path C:\Code){
write "it exists!"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法否定这种情况,例如(非工作):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Run Code Online (Sandbox Code Playgroud)
解决方法:
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Run Code Online (Sandbox Code Playgroud)
这很好,但我更喜欢内联.
在SQL Server 2005中,我试图弄清楚为什么我无法在表中插入多个字段.以下查询,插入一条记录,工作正常:
INSERT INTO [MyDB].[dbo].[MyTable]
([FieldID]
,[Description])
VALUES
(1000,N'test')
Run Code Online (Sandbox Code Playgroud)
但是,以下查询(指定多个值)将失败:
INSERT INTO [MyDB].[dbo].[MyTable]
([FieldID]
,[Description])
VALUES
(1000,N'test'),(1001,N'test2')
Run Code Online (Sandbox Code Playgroud)
我收到这条消息:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near ','.
Run Code Online (Sandbox Code Playgroud)
当我在SQL Sever Management Studio中查找INSERT的帮助时,他们的一个示例显示了我使用的"值"语法(括号中的值组并用逗号分隔).我在SQL Server Management Studio中找到的帮助文档看起来就像是SQL Server 2008,所以也许这就是插入不起作用的原因.无论哪种方式,我都无法弄清楚为什么它不起作用.
在VB6/VBA中,您可以在特定Sub或Function方法之外声明模块级变量.我用Private与Public前内部模块和理解他们,像这样:
Public - 模块内的所有代码和模块外的所有代码都可见,实际上使其成为全局代码.Private - 仅对模块内的代码可见.我注意到你可以使用Dim和Global作为模块变量的修饰符.是Dim与Global从不同Private,并Public分别作为模块化领域访问修饰符使用时?如果是这样,他们有什么不同?
我正在从Visual Studio命令提示符2010中运行GacUtil.exe,以便向GAC注册dll(CatalogPromotion.dll).运行该实用程序后,它说Assembly Successfully added to the cache,并且运行gacutil /l CatalogPromotionDll显示GAC包含程序集,但是当我从Windows资源管理器导航到C:\ WINDOWS\assembly时,我看不到程序集. 为什么我不能从Windows资源管理器中看到WINDOWS\assembly中的程序集,但我可以使用gacutil.exe看到它?
背景:这是我在VS Tools的命令提示符中输入的内容:
C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
\Debug>gacutil /i CatalogPromotionDll.dll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly successfully added to the cache
C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
\Debug>gacutil /l CatalogPromotionDll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
The Global Assembly Cache contains the following assemblies:
CatalogPromotionDll, Version=1.0.0.0, Culture=neutral, … StreamWriter.Flush()和之间的功能有什么区别StreamWriter.Close()?
当我的数据不能被正确地写入一个文件,我既增加Flush()和Close()对我的代码的结束.然而,我意识到,添加任一 Flush()或Close()所允许的数据被正确写入.
当我阅读MSDN文档时,我无法准确了解每种方法的作用; 我只想到确保正确写入数据所需的一个或另一个.任何进一步的解释将不胜感激.
s要写入的字符串在哪里,这是我的代码当前的样子:
StreamWriter sw = File.CreateText("TextOutput.txt");
sw.Write(s);
sw.Flush();
sw.Close();
Run Code Online (Sandbox Code Playgroud)
根据答案的反馈,我在一个using块中重写了我的代码,该块实现IDisposable并将自动处理在处理对象时将流写入文件:
using (StreamWriter sw = File.CreateText("TextOutput.txt"))
{
sw.Write(s);
}
Run Code Online (Sandbox Code Playgroud) 假设我有以下代码:
Sub TestRangeLoop()
Dim rng As Range
Set rng = Range("A1:A6")
''//Insert code to loop through rng here
End Sub
Run Code Online (Sandbox Code Playgroud)
我希望能够Range为每个指定的单元格迭代一组对象rng.从概念上讲,我想这样做:
For Each rngCell As Range in rng
''//Do something with rngCell
Next
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过手动解析rng.Address和构建Range对象来解决这个问题,但我希望有一种更直接的方法,不涉及字符串解析.
在最近关于Stack Overflow的问题中,我问我如何通过文件名解析文件的额外元信息.
在我解决了这个问题之后,我决定创建一种新类型的对象来保存元数据和原始文件.我想我可能会这样做:
class BackupFileInfo : FileInfo, IEquatable<BackupFileInfo>
{
//Properties and Methods here
}
Run Code Online (Sandbox Code Playgroud)
我的想法是,我会FileInfo在实现的对象的属性中添加元信息时保留原始对象FileInfo,例如IsMainBackup.
但是,FileInfo是密封的,这意味着其他类不能继承它.
相反,我最终得到了以下内容:
class BackupFileInfo : IEquatable<BackupFileInfo>
{
public bool IsMainBackup { get; set; }
public int ImageNumber { get; set; }
public int IncrementNumber { get; set; }
public FileInfo FileInfo { get; set; }
//public BackupFileInfo() //constructor here
public bool Equals(BackupFileInfo other)
{
return (this.FileInfo.Name == other.FileInfo.Name
&& this.FileInfo.Length == other.FileInfo.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
我对这个解决方案并不十分兴奋,因为 …
我试图在VB6中使用Web服务.我控制的服务 - 当前可以返回SOAP/XML消息或JSON.我有一个非常困难的时候,如果VB6的SOAP类型(第1版)找出可以处理返回object-而不是简单的类型,如string,int等.到目前为止,我想不出什么,我需要做的就是VB6而归玩对象.
所以我想我可能会将Web服务中的响应序列化为JSON字符串.VB6是否存在JSON解析器?
在VB6/Visual Studio 6.0 IDE中,是否有一种在代码编辑器中显示行号的方法,就像在最新版本的Visual Studio .NET中一样?
例如,我想向某人询问有关其代码的问题,并且能够说"在MyClass.bas文件的第10行到第13行中,我注意到这发生了."
我正在构建一个将调用外部Web服务的.NET组件.我使用"添加服务引用"对话框将Web服务添加到我的组件,该组件生成使用该服务所需的代码并将设置添加到app.config文件中.
我正在通过从Console应用程序添加对其DLL的引用并调用创建Web服务的新实例的适当方法来测试该组件:... = new MyServiceSoapClient().但是,当我这样做时,我得到以下异常:
出现InvalidOperationException
无法在ServiceModel客户端配置部分中找到引用合同"MyServicesSoap"的默认端点元素.这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素.
这是有道理的,因为app.config没有被组件的DLL带来.如何在不必依赖App.Config中的设置的情况下调用Web服务?
.net ×4
c# ×3
vb6 ×3
vba ×3
web-services ×2
windows ×2
app-config ×1
assemblies ×1
excel ×1
excel-vba ×1
file-io ×1
gac ×1
gacutil ×1
ide ×1
json ×1
powershell ×1
scope ×1
sql ×1
sql-server ×1
t-sql ×1
vb.net ×1