我是一个包含文件夹名称的文本文件。我正在尝试创建一个脚本,该脚本将通过文本文件并验证是否存在每个文件夹名称,如果该文件夹不存在,则会使用" 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}
}
谢谢大家!!
答案 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,那么您要检查相同路径或特定文件夹中的文件夹是否存在。有了所有这些假设,我就这样做了:
考虑到文件中提到的路径如下:
文件内容:
如果父路径(C:\文件夹)下没有文件夹,则会创建名称以' NEW'开头的子文件夹,如:
文件夹创建:
以下是执行此操作的代码:
$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."
}
}
希望它有所帮助。