输入读取主机

时间:2016-07-07 16:11:08

标签: powershell save office365

示例

$nameofpath = read-host "enter path"
get-services | export-csv "$nameofpath"

我想要一个脚本,所以在上面的例子中输入c:\files\test.txt之类的路径后,它会保存一个脚本:

get-services | export-csv "c:\files\test.txt"

...所以我可以去那个文件点击它,它会运行。

目前我有一个这样的草稿脚本,但如果我知道如何做第一个例子,我希望能够为此做同样的事情

2 个答案:

答案 0 :(得分:1)

您需要更改正在运行的脚本,或查询其他文本文件。如果文本文件中有任何内容,请使用该文件;否则,提示值。下面是一个示例,说明如何使用$PSCommandPath(包含正在运行的脚本的完整路径和文件名的an automatic variable)更改您正在运行的脚本变量:

$Foo = $null
#If $Foo is $null prompt for value then write that value to the script.
if($Foo -eq $null){
    $Foo = Read-Host "Foo"
    #Need to becarful not to match this line
    $NewScript = Get-Content $PSCommandPath | ForEach-Object {$_ -replace '^\$Foo = \$null$',"`$Foo = '$Foo'"}
    $NewScript | Out-File $PSCommandPath -Force
}
Write-Host "Foo $Foo"

希望这有帮助。

答案 1 :(得分:1)

这看起来很业余,但按预期工作

$path = [Microsoft.VisualBasic.Interaction]::InputBox("Enter path") 
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null  
 get-service | export-csv -path $path\services.csv # original command 
$Command="get-service | export-csv -path $path\services.csv" # same copy here to save 
  $command |Out-File "D:\exportservice.ps1" # where you want the file to be saved to run later