示例:
$nameofpath = read-host "enter path"
get-services | export-csv "$nameofpath"
我想要一个脚本,所以在上面的例子中输入c:\files\test.txt
之类的路径后,它会保存一个脚本:
get-services | export-csv "c:\files\test.txt"
...所以我可以去那个文件点击它,它会运行。
目前我有一个这样的草稿脚本,但如果我知道如何做第一个例子,我希望能够为此做同样的事情
答案 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