在Powershell中创建循环

时间:2017-05-25 02:33:13

标签: powershell

我是一个包含文件夹名称的文本文件。我正在尝试创建一个脚本,该脚本将通过文本文件并验证是否存在每个文件夹名称,如果该文件夹不存在,则会使用" New"在它面前。

这是我到目前为止尝试做的事情:

$Cont = Get-Content C:\pro\fic.txt
$elem =  Get-ChildItem C:\pro\
echo $elem

foreach ($elem in $Cont) 
{ if (C:\pro\ -contains $elem) 

{ "there is a match" } 

else
{New-Item C:\Pro\new_file.txt -type file}

}

谢谢大家!!

2 个答案:

答案 0 :(得分:0)

这样做

$Cont = Get-Content C:\pro\fic.txt
$currentFolders =  Get-ChildItem C:\pro -Directory

foreach ($elem in $Cont) {
    if(!(Test-Path -Path ('C:\pro\' + $elem) )) {
        New-Item -ItemType directory -Path ('C:\pro\' + $elem)
    }
}

答案 1 :(得分:0)

很少有观察结果,我自己接受了,因为这些观点含糊不清。

该文件只包含" foldernames"或者" foldernames的完整路径" 如果只有foldernames,那么您要检查相同路径或特定文件夹中的文件夹是否存在。有了所有这些假设,我就这样做了:

考虑到文件中提到的路径如下:

文件内容

enter image description here

如果父路径(C:\文件夹)下没有文件夹,则会创建名称以' NEW'开头的子文件夹,如:

文件夹创建

enter image description here

以下是执行此操作的代码:

    $Cont = Get-Content C:\folder\string.txt
    foreach ($path in $Cont) 
    { 
        if (!(Test-Path $path)) 
         {"The folder in this $path doesnot exist. So creating with 'New' infront of it..."
          $bottomfoldername= Split-Path $path -Leaf
          $parentpath= Split-Path $path -Parent
         New-Item "$parentpath\NEW$bottomfoldername" -type Directory -Force
         }
        else
        {
        "The folder is present. So not creating."
        }

    }

希望它有所帮助。