Powershell脚本的几个问题

Powershell脚本的几个问题

我想创建一个脚本,但有一些问题。这只是开始。我会添加其他命令。我已经尝试通过 Google 和许多示例找到所有答案,但得到的信息太多了。每个人似乎都有自己的解决方案,而当我尝试时,却失败了。

# This script is made to retrieve important information of a system running Windows. 

###############################
#Info where to drop information
###############################

$FilePath = "c:\tmp\SysNetInfo\" #location where you will find text file with information
$FileName = "SysNetInfo.txt" #name of my output file

########################
#Starting gathering info
########################

Read-Host 'This script is gathering some useful information from your system.'
Read-Host -Prompt "Press any key to continue"

# Get Ipv4 information: 
(gwmi Win32_NetworkAdapterConfiguration | ? {$_.IPAddress -ne $null}).IPAddress
(gwmi Win32_NetworkAdapterConfiguration | ? {$_.IPAddress -ne $null}).DefaultIPGateway
Out-File $FilePath\$FileName

问题:

  1. Read-Host 'This script is gathering some useful information from your system.' 我希望我的代码继续执行到下一行。相反,它会停止并需要用户操作。我请求用户交互的正是这一行之后的行。我可以轻松跳过这部分并将其删除,但我想知道我的问题的答案。

  2. 我尝试将命令的结果放在文本文件中。首先我只是使用Out-File C:\tmp\SysNetInfo\SysNetInfo.txt(但失败了,因为它只给了我默认网关),但我想使用变量 FilePath 和 FileName。

更新:

问题 1 由 David 解决。

问题 2-我收到此错误:

在此处输入图片描述

!!! 不要寻找第 25 行。我原来的脚本有一些注释,我没有在这篇文章中添加。

答案1

对于 #2:

很可能您没有SysNetInfo在 下创建目录c:\tmp电源外壳文件写入命令将创建文件但不会创建目录。

使用类似:

If ( -not (Test-Path $FilePath) ) {
    mkdir $FilePath -Force
}

在尝试写入您的文件之前。

虽然对于 #1 有一个可能的解决方案,但另一个选择是将所有文本作为提示Read-Host。Here-strings 是创建多行字符串的一种方法:

$MyPrompt = @'
This script is gathering some useful information from your system.

PRess any key to continue...
'@
Read-Host $MyPrompt
....

相关内容