首页 > 解决方案 > 根据部分文件名创建文件夹名称

问题描述

我的文件名中包含“-”(连字符)。我正在尝试为每个文件名创建一个文件夹并将文件移动到该文件夹​​。

这是我想要使用的:

dir | %{ 
    $id = $_.Name.SubString(0,5); 
    if(-not (Test-Path $id)) {mkdir $id}; 
    mv $_ "$id\$_";}

问题是,一些文件名的连字符前少于 5 个字符,因此对于这些文件夹,连字符被添加到文件夹名称中。我尝试使用拆分措辞,但我被语法困住了。

下面是几个文件名示例:

在此先感谢您的帮助

标签: powershell

解决方案


试试这个

#split return an array
$id = ($_.Name -split '-')[0];

推荐阅读