如何在powershell中的“New-Item”中间输入和使用变量

时间:2015-08-21 03:48:45

标签: powershell

所以我正在尝试创建一个简单的程序,将文件从一个位置复制到另一个位置。我找到了那个部分,但是我想请求用户输入关于我在创建新文件夹所需的路径的设置方面。

例如

询问用户输入并将该名称存储在变量中。然后在路径中使用该变量来创建名为test

的新文件夹
$inputName = Read-Host 'Enter computer name'
New-Item C:\Users\$inputName\Documents\test -type directory | Out-Null

因此,如果计算机上有多个用户,您可以询问您将在哪个用户\文档中创建新文档。

非常依旧学习/教学自己的权力如此抱歉,如果这是我完全失踪的东西!谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

-Edit 2,添加有关CmdletBinding选项的注释。如果你省略了params,powershell会提示输入。

Function My-Test{
[CmdletBinding(SupportsShouldProcess=$true)]
Param(
 [Parameter(Mandatory=$true)]
  [string]$Path,
 [Parameter(Mandatory=$true,
  HelpMessage="Enter ServerName")]
  [String]$server,
)
My-Test -Path C:\Temp -server Server9000

-Edit添加PowerShell将在双引号之间扩展变量。另一方面,单引号会将$path写为。

举个例子:

Write-Host 'Your variable is $path`
 Your variable is $path
Write-Host "Your path is $path"
 Output: Your path is C:\Temp

您可以使用Read-Host提示用户输入分配给变量的内容。此外,您可以指定AsSecureString,以便存储的值加密。

$path = Read-Host -Prompt "Enter path name"
Write-Host "You chose $path"

其次,您的脚本可以以param($path)开头,它将接受路径作为cmdline参数。

PS C:\ > Script.ps1 -path "c:\temp"