我有一个XML文档,如下所示:
<Task>
<Settings>
</Settings>
<Sub>foo</Sub>
<Body>bar</Body>
</Task>
Run Code Online (Sandbox Code Playgroud)
从PowerShell我可以愉快地使用以下内容获取'Sub'和'Body'的内容:
$Body = $XMLFile.Task.Body
Run Code Online (Sandbox Code Playgroud)
但我试图完全删除'Sub'和'Body'标签,因此XML将是:
<Task>
<Settings>
</Settings>
</Task>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多东西,包括:
.RemoveChild()方法(抛出与Object引用相关的exeption)甚至将文件作为文本文件打开并尝试:
Get-Content $_.FullName -notmatch "<Sub>" | out-file $_.FullName
^^这什么都不做
此外,对于此脚本应用程序,我将无法使用任何第三方模块
我是Powershell的新手,尤其是Powershell和ZIP文件.我想从传递的zip文件中解压缩一个特定的文件.为此,我有以下代码.下面的代码应该*.update从zip 获得.
我遇到的问题是特定文件在另一个文件夹中.运行脚本时,它似乎不会在zip文件夹中查找更多文件.
我已经在$ item上尝试了GetFolder,并且/或者通过$ item尝试了foreach.到目前为止没有成功.任何人都有想法或指导的方向?
function ExtractFromZip ($File, $Destination) {
$ShellApp = new-object -com shell.application
$zipFile = $ShellApp.NameSpace($File)
foreach($item in $zipFile.Items())
{
Write-Host $item.Name
if ($item.GetFolder -ne $Null) {
Write-Host "test"
}
if ($item.Name -like "*.update") {
$ShellApp.Namespace($Destination).copyhere($item)
break;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想在我的脚本中添加一行,打开一个新的 Power Shell 控制台并在新窗口中运行 ping 命令。
我对 Powershell 还很陌生,这花了太多时间,所以请帮忙!(请)
我有一个脚本,首先从 SQL Server 表中提取一个值。该提取通过以下方式填充“表”来工作:
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是从 中获取单个值$DataSet。该值是我需要的日期时间戳。引用$DataSet.Tables[0]显示了标题为 Column1 的日期时间戳。我尝试过各种类型的转换、ToString() 等。结果要么是数据类型的显示(例如System.Data.DataRow),要么显示任意数量的错误。如何将值放入被识别为日期时间的变量中?
TIA,
约翰
我该如何改变:
$Text = "Apple Pear Peach Banana"
Run Code Online (Sandbox Code Playgroud)
至
$Text = @("Apple", "Pear", "Peach", "Banana")
Run Code Online (Sandbox Code Playgroud)
我计划将数组提供给foreach循环.提示用户输入水果,其间有空格(我将Read-Host用于此).那么我需要将空格分隔的字符串转换为foreach循环的数组.
谢谢...
我需要能够带上我的笔记本电脑并插入多个位置的多个不同网络。每个网络都要求我使用一个静态地址。我目前有一个 shell 脚本,提示输入网络位置并使用 netsh 设置 IP 地址。但是,Microsoft 警告说他们可能会删除 netsh 并使用 Powershell,因此我尝试在 Powershell 中重新创建我的脚本。
我遇到的问题是,如果我从 dhcp 转到静态地址,我可以使用:
New-NetIPAddress -InterfaceAlias $myAdapter -AddressFamily IPv4 10.1.2.3 -PrefixLength 24 -Type Unicast -DefaultGateway 10.1.2.1
Run Code Online (Sandbox Code Playgroud)
但是,当使用 New-NetIPAddress 从一个静态地址到另一个静态地址时,只需向适配器添加另一个 IP 地址(而且我无法连接到任何东西,因为它似乎只使用第一个 IP 地址)。为了解决这个问题,我可以使用 Set-NetIPAddress,但这似乎不接受 -DefaultGateway 参数,因此我分配了新地址,但使用了旧网关。我尝试使用 Remove-NetIPAddress,但这似乎保留了网关参数,因此 New-NetIPAddress 命令失败并显示“Instance DefaultGateway already exists”。如何删除网关以便我可以使用 New-NetIPAddress 重新开始或在使用 Set-NetIPAddress 时替换网关?
我正在尝试将其作为 powershell 中的单行代码来执行,以便我可以继续根据检查字符串检查这些字符串。我遇到的麻烦是,无论我做什么,我都只能通过字符串长度进行设置。
以下尝试未能获得所需的结果。一个文本很好,另一个成功。我也试过用管道输入它们,但我相信它们都不接受管道输入。
感谢您的帮助,因为我是 powershell 的新手。
PS C:\Users\IEUser> Get-Content Desktop/dict.txt | Sort-Object
PS C:\Users\IEUser> Get-Content Desktop/dict.txt | Sort-Object -Property Length
Run Code Online (Sandbox Code Playgroud) 我正在开发一个跨远程服务器启动某些服务的过程,但是服务器 2 无法启动,直到在服务器 1 日志中找到消息,服务器 3 才能启动,直到服务器 2 中找到相同的消息,等等。
我的问题是,是否可以在“循环”中读取文件,并且在找到该消息之前不继续进行初始循环(然后继续前进)?我想我可以在下面做,但是,虽然它确实识别出日志文件中的字符串已找到,但它只是重复找到它,直到内置计时器完成然后向前移动。因此,该过程将类似于“读取此文件,如果找到字符串,则继续前进。如果未找到字符串,则等待 30 秒并重新扫描文件。如果找到,则继续前进,如果未找到,则再等待 30 秒,然后重新扫描(我可以连续重复)< 执行此操作,直到找到字符串。示例:在此处输入图像描述
任何建议将不胜感激,因为我认为我可能会从错误的角度来处理这个问题......
-- 我省略了此脚本之前的大部分脚本,只包含 If/Else 语句,因为这是它检查文件的地方。
$SEL = Select-String -Path \\$Server\$RootDir\folder\anotherfolder\A-Log-File.log -Pattern "Switching to status: STARTED"
if ($SEL -ne $null)
{
Write-Host "FOUND: Switching to status: STARTED" -ForegroundColor Yellow -BackgroundColor DarkGreen
}
else
{
Write-Host **** Waiting 60 seconds for cache to build ****
[int]$Time = 60
$Lenght = $Time / 100
For ($Time; $Time -gt 0; $Time--) {
$min = [int](([string]($Time/60)).split('.')[0])
$text = " …Run Code Online (Sandbox Code Playgroud) 我有大量的 PC 号码列表(大约 2000+-),我使用以下命令进行查询:
$Computers = get-content = "C:\Users\Public\Documents\CSV\tfiles\Computernames.txt"
foreach ($Computer in $Computers) {
query user /server:$Computer
}
Run Code Online (Sandbox Code Playgroud)
我想知道如果 2 秒后没有 PC 名称结果,我是否可以通过跳过命令来加快此过程。
也欢迎其他更快的方法。
powershell ×10
arrays ×1
command-line ×1
datetime ×1
extract ×1
foreach ×1
networking ×1
performance ×1
server ×1
sql-server ×1
string ×1
windows ×1
xml ×1
xpath ×1
zip ×1