我正在尝试编写一个脚本,它将获取特定目录中所有文件夹的名称,然后将每个文件夹作为数组中的条目返回.从这里开始,我将使用每个数组元素来运行一个更大的循环,该循环使用每个元素作为稍后函数调用的参数.所有这一切都是通过powershell进行的.
目前我有这个代码:
function Get-Directorys
{
$path = gci \\QNAP\wpbackup\
foreach ($item.name in $path)
{
$a = $item.name
}
}
Run Code Online (Sandbox Code Playgroud)
$ path行是正确的并且获取了所有目录,但foreach循环是它实际存储第一个目录的各个字符而不是每个directorys全名到每个元素的问题.我已经对Powershell如何创建数组做了一些研究,但我有点困惑,所以我希望有人能指出我正确的方向.
谢谢你的帮助.
我有一个excel电子表格,其中包含一些我跟踪的公式和数据.我有一个小宏,可以找到所选单元格的先例,但是id就像使宏递归一样,这样我就可以找到所有的先例.例如,将焦点设置到单元格并运行此函数将突出显示单元格,然后突出显示单元格的先例,然后突出显示这些单元格的先例,然后突出显示先例...
我现在遇到的问题是我不确定应该逃脱的条件是什么.我遇到了一些无限循环问题,并且不熟悉递归,足以找出一个可靠的解决方案.
下面是我用来(正确)找到初始先例的一些代码:
Sub FindClosedWbReferences(inRange As Range)
Rem fills the collection With closed precedents parsed from the formula String
Dim testString As String, returnStr As String, remnantStr As String
testString = inRange.Formula
testString = RemoveTextInDoubleQuotes(testString): Rem New line
Set ClosedWbRefs = New Collection
Do
returnStr = NextClosedWbRefStr(testString, remnantStr)
ClosedWbRefs.Add Item:=returnStr, Key:=CStr(ClosedWbRefs.count)
testString = remnantStr
inRange.Select
inRange.Interior.ColorIndex = 36
Loop Until returnStr = vbNullString
ClosedWbRefs.Remove ClosedWbRefs.count
End Sub
Run Code Online (Sandbox Code Playgroud)
这是从一个类似于以下内容的main函数调用的:
If homeCell.HasFormula Then
Set OtherWbRefs = New Collection: CountOfClosedWb = 0
Set …Run Code Online (Sandbox Code Playgroud) 我试着编写一个非常简短的PowerShell脚本来运行一些命令,将它们的输出传递给一个文本文件,然后对一个关键字进行搜索.
我不知道要改变什么,但这条线:
wmic service get name, startname | out-File "$pwd\admin\wmic.txt"
WMIC.exe : Invalid GET Expression.
At \\test.ps1:7 char:5
+ wmic <<<< service get name startname | out-File "$pwd\admin\wmic.txt"
+ CategoryInfo : NotSpecified: (Invalid GET Expression.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Run Code Online (Sandbox Code Playgroud)
我相信错误是从','生成的,因为powershell使用逗号来创建数组.有什么想法或建议吗?
谢谢