Function Powershell为目录创建一个函数,并在末尾添加前缀

Function Powershell为目录创建一个函数,并在末尾添加前缀,function,powershell,directory,prefix,Function,Powershell,Directory,Prefix,制作一个函数,生成3个名为John_S的目录,并添加前缀和数字1、2、m 例子 1.约翰 2.约翰2 3.约翰·苏S3 使用循环(ForEach) 使用变量表示迭代次数 到目前为止我所拥有的 $DirName = "John_S" function mulcheck {New-item "$DirName"} $i = 1 foreach($DirName in $DirNames) {$newname = $DirName Rename-

制作一个函数,生成3个名为John_S的目录,并添加前缀和数字1、2、m 例子 1.约翰 2.约翰2 3.约翰·苏S3 使用循环(ForEach) 使用变量表示迭代次数 到目前为止我所拥有的

$DirName = "John_S"
function mulcheck {New-item "$DirName"}
    $i = 1
    foreach($DirName in $DirNames)
{$newname = $DirName Rename-Item $($DirName) $newname $i++}

生成数字1到3的最简单方法是使用
范围运算符:

foreach($suffix in 1..3){
  mkdir "John_S${suffix}"
}
要使函数可重复使用而不是
John\u S
,请为前缀声明
[string]
参数:

function New-Directories([string]$Prefix) {
  foreach($suffix in 1..3){
    mkdir "${Prefix}${suffix}"
  }
}

如果我正确理解了您的最新评论,那么您需要一个函数,该函数采用一个新文件夹的名称,并检查根路径中是否存在一个名为altready的文件夹。在这种情况下,它应该使用给定的名称创建一个新文件夹,但附加一个索引号,这样它就有一个唯一的名称

为此,您可以使用以下内容:

function New-Folder {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $false)]
        [string]$RootPath = $pwd,  # use the current working directory as default

        [Parameter(Mandatory = $true)]
        [string]$FolderName
    )
    # get an array of all directory names (name only) of the folders with a similar name already present
    $folders = @((Get-ChildItem -Path $RootPath -Filter "$FolderName*" -Directory).Name)
    $NewName = $FolderName
    if ($folders.Count) {
        $count = 1
        while ($folders -contains $NewName) {
            # append a number to the FolderName
            $NewName = "{0}{1}" -f $FolderName, $count++
        }
    }
    # we now have a unique foldername, so create the new folder
    $null = New-Item -Path (Join-Path -Path $RootPath -ChildPath $NewName) -ItemType Directory
}

New-Folder -FolderName "John_S"
如果您多次运行此操作,您将创建多个文件夹,如


hi,你是否打算像($i=1;$i-le$count;$i++){…}那样循环一个可变次数?hi,我试图创建一个函数,每次我运行它时,它都会创建一个目录名“John_S”,每次我运行同一个函数时,如果已经有一个目录名“John_S”它将生成另一个同名目录,并带有前缀号。我们尚未收到您的消息。。作为新手,您可能不知道这一点,但习惯于单击大复选标记图标
在左边。这将帮助其他有类似问题的人更容易找到它,并有助于激励人们回答你的问题。嗨,这太棒了,但这只允许我在每个目录中使用该功能一次。有没有可能让一个函数一次创建一个前缀递增的目录?看看你的函数,有没有办法在John_S保持不变的情况下声明后缀参数?@Jeffrie当然,但我想你想让这个函数创建3个不同的文件夹?那么你想一次接受3个不同的后缀,还是。。。?