我有一个包含数千个文件的文件夹(比方说.txt),名称不同: VBH_V001.txt VDD_V001.txt DTG_V001.txt ADC_V001.txt DFD_V001.txt 等....
我需要在该文件夹中创建具有每个文件名称的目录,然后将这些文件移动到目录中。结果应该是例如名称为VBH的文件夹(没有_V001.txt),在该文件夹中我应该有VBH_V001.txt文件。我怎样才能做到这一点。请指教。
答案 0 :(得分:2)
cd <path to your folder>
$files = Get-ChildItem -file;
ForEach ($file in $files)
{
$folder = New-Item -type directory -name $file.BaseName;
Move-Item $file.FullName $folder.FullName;
}
此脚本为每个文件创建一个目录,并将文件移动到此目录。要从目录名中排除_V001,可以在$ file.BaseName上调用TrimEnd方法 -
$file.BaseName.TrimEnd ("_V001")
一步一步。
将新创建的目录的对象保存到$ folder变量中。
使用Move-Item cmdlet移动文件。此cmdlet需要两个属性:源路径和目标路径。作为源路径,使用文件对象的FullName属性,以及目标路径的目录对象的FullName属性。 FullName属性返回包含完整路径的文件或目录的名称,例如文件的D:\ directory \ file.txt和目录的D:\ directory \ anotherDirectory。
答案 1 :(得分:0)
你基本上需要做的是:
希望有所帮助。