根据 txt 文件中的名称并添加字符串创建目录

根据 txt 文件中的名称并添加字符串创建目录

这里是老师,完全是 powershell 新手,想节省一点时间来创建学生文件夹以便提交作业。

我有以下为文本文件中的每一行(学生姓名)创建一个新文件夹。

$folder="X:\9-3_Science";
$txtFile="X:\9-3_Science\9-3_StudentNames.txt";

get-content $txtFile | %{

    if($_)
    {
        mkdir "$folder\$_";
    }
}

输出文件夹如 \FirstLast

但是,我想输出带有连接字符串的文件夹名称来识别学生所在的教室,例如 \9-4_FirstLast_Science

我如何修改“mkdir”命令来执行此操作?

答案1

我做出如下假设:

  • 你想将学生文件夹放在教室文件夹内
  • 学生们都在单独的行中.txt

如果确实如此,我们可以执行以下操作:

  • 取下叶子$folder并将其分开_以获得RoomNumberSubject以供进一步使用
  • $folder通过组合, Room ($split[0]), StudentName ($_),创建字符串subject ($split[1])
  • 使用该字符串创建一个文件夹。

其结果为以下代码:

$folder = "X:\9-3_Science"
$txtFile = "X:\9-3_Science\9-3_StudentNames.txt"

$Number = "9-3_"
$Subject = "_Science"

Get-Content $txtFile | ? { $_ -ne '' } | % {
    $FolderString = "{0}{1}{2}" -f $Number, $_, $Subject
    $FolderName = Join-Path $folder $FolderString
    mkdir $FolderName
}

我根据您的代码做了以下更改:

  • PowerShell 不需要;每行后面都有结尾,所以我删除了它们。
  • 而不是if ($_)我在循环之前过滤空行? { $_ -ne '' }

相关内容