小编Vip*_*ppy的帖子

PowerShell:引用 - 替换和变量

这是对我之前的问题的回应:

PowerShell:-replace,regex和($)美元符号问题

我的问题是:为什么这两行代码有不同的输出:

'abc' -replace 'a(\w)', '$1'
'abc' -replace 'a(\w)', "$1"
Run Code Online (Sandbox Code Playgroud)

并根据下面的2篇文章,为什么单引号中的变量'$ 1'不能用作文字字符串?单引号中的所有内容都应被视为文字文本字符串,对吧?

http://www.computerperformance.co.uk/powershell/powershell_quotes.htm
http://blogs.msdn.com/b/powershell/archive/2006/07/15/variable-expansion-in-strings-and-herestrings的.aspx

variables quotes powershell replace

15
推荐指数
3
解决办法
3万
查看次数

PowerShell:打开和关闭"Num Lock".

我希望能够打开和关闭键盘上的"Num Lock"键.我在网上尝试过多个例子,但没有成功.这是我最接近解决方案的事情:

[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[System.Windows.Forms.SendKeys]::SendWait("{NUMLOCK}")
Run Code Online (Sandbox Code Playgroud)

上面的代码看起来可能有效,我看到键盘上的"Num Lock"指示灯闪烁了一秒钟,但它并没有"粘住".

keyboard powershell keypress

10
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2013:文件选项卡中的数字后缀是什么意思?

我刚刚从 VS2010 升级到 VS2013,现在偶尔我会在一些选项卡中看到一个数字:

选项卡中的数字

我搜索了 Google、MSDN 和此处,但没有找到答案。

知道这些数字意味着什么吗?

user-interface tabs visual-studio-2013

8
推荐指数
1
解决办法
1936
查看次数

PowerShell:多个脚本进度的写入进度

我的研究:

好的,我已经查看了几十个例子Write-Progress并观察了以下内容.大部分时间与循环结合使用,通常是"for"或"foreach".大多数示例不做任何事情,但计数为100.其他更有用的示例将执行某个命令,例如复制文件.没有示例包含整个脚本.

我的设置:

我有几个脚本(数千行代码)在某些时候相互调用.一个脚本控制或调用所有其他脚本.该脚本运行大约15分钟,在此期间我想提供状态使用Write-Progress.

我的问题:

在我的Write-Progress所有脚本执行时如何使用提供状态?基本上我想"包装" Write-Progress我的所有脚本或者是从单个脚本为多个被调用脚本提供状态的最佳方法.

最好的例子:

到目前为止,我见过的最好的用法是Update-Help在PowerShell V3中使用CmdLet.但由于我看不到Update-HelpCmdLet 的源代码,这对我没有帮助.

powershell loops progress

6
推荐指数
1
解决办法
3710
查看次数

具有命名/标记类型的 C# 字典

我几乎到处搜索,甚至不确定它是否可能,但是嘿嘿,我想我会看到你们 C# 向导可能有什么解决方案或变通方法。

特尔;博士:

我有一个使用 C# 字典的多维集合,并想指出字典中每个字符串的用途,如下所示:

private Dictionary<string: Area, Dictionary<string: Controller, string: Action>> ActionCollection;
Run Code Online (Sandbox Code Playgroud)

这当然不起作用。现在我只是在评论字典。

建议、想法、想法?

c# collections dictionary types

5
推荐指数
1
解决办法
2874
查看次数

PowerShell成员:方法和属性的解释?

我是PowerShell的新手,来自很久以前的BASH背景.PowerShell的内置文档和Web上的帮助非常好,但是我一直磕磕绊绊的一个领域是理解方法和属性(这些被称为成员/类?).我知道我可以看到我可以使用哪些方法和属性,例如:

ls | get-member
Run Code Online (Sandbox Code Playgroud)

如何.Exists,.Trim,.SubString,或.Split等实际工作?

methods powershell properties

4
推荐指数
1
解决办法
4463
查看次数

PowerShell:-replace,regex和($)美元符号问题

我正在将数千行批处理代码转换为PowerShell.我正在使用正则表达式来帮助完成这个过程.问题是代码的一部分是:

$`$2
Run Code Online (Sandbox Code Playgroud)

更换时,它只显示$2并不扩展变量.我还使用单引号替换第二部分而不是转义变量,结果相同.

$origString = @'
IF /I "%OPERATINGSYSTEM:~0,6%"=="WIN864" SET CACHE_OS=WIN864
...many more lines of batch code
'@

$replacedString = $origString -replace "(IF /I `"%)(.+)(:.+%`"==`")(.+`")(.+)","if ( $`$2 -match `"^`$4 ) {`$5 }"

$replacedString
Run Code Online (Sandbox Code Playgroud)

regex powershell replace dollar-sign

4
推荐指数
1
解决办法
7639
查看次数

PowerShell:使用$ ExecutionContext.InvokeCommand.ExpandString($ var)的双引号

好吧,我已经编写了一个在Windows 8中完美运行的脚本.我切换到Windows 7并获得各种血液.经过一些调试,我发现了问题.Win 8使用PowerShell 3.0,Win 7使用PowerShell 2.0和PowerShell 3.0允许您在使用时使用双引号:

$ExecutionContext.InvokeCommand.ExpandString($var)
Run Code Online (Sandbox Code Playgroud)

由于我的代码在很多字符串使用双引号时非常依赖于此,我正在尝试找到解决方案.

Here-Strings没有用,因为我的一些字符串是这样的:

$var = 'this is a "sample" of $one of my strings'
Run Code Online (Sandbox Code Playgroud)

here-string解决方法只有在输出到文本文件时才有效,我不想要这个文本文件,因为我在函数中大量使用了这段代码.

我在微软的网站上发现了与此相关的错误.它在PowerShell 3.0中的工作方式是它最初的工作方式.此外,将Windows 7升级到PowerShell 3.0是不可能的.

variables powershell parsing

2
推荐指数
1
解决办法
1503
查看次数

PowerShell:输出正则表达式而不是结果

好的,长时间访问者,第一次发帖.

而不是PowerShell告诉我我的正则表达式的结果是"真"或"假",而是我想要字符串.我知道有其他方法可以做到这一点,我已经有一个工作版本,但我想使用正则表达式"提取"字符串.

例如:

$ipconfig = ipconfig | select-string "IPv4" | select-object -first 1
$ipconfig -match "\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b"
Run Code Online (Sandbox Code Playgroud)

只返回"True",而不是我想要的IP地址.

有没有办法用正则表达式完成这个?

谢谢!

regex string powershell extract

1
推荐指数
1
解决办法
7001
查看次数

PowerShell:存储在变量中的刷新日期

我有许多用于记录的脚本中使用的以下变量:

$uDate = get-date -format "ddd MM/dd/yyyy HH:mm:ss"

唯一的问题是日期永远不会刷新,只显示声明变量的日期/时间.

variables powershell refresh

1
推荐指数
1
解决办法
4933
查看次数

新手:C#List返回System.Collections.Generic.List

看起来这很简单:

class Program
{
    static void Main()
    {
        List<string> lst = new List<string>();
        lst.Add("String 1");
        lst.Add("String 2");

        foreach (string item in lst)
        {
            Console.WriteLine(lst);
        }
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

然而它返回:

System.Collections.Generic.List`1[System.String]
Run Code Online (Sandbox Code Playgroud)

c# collections foreach list

0
推荐指数
1
解决办法
269
查看次数