Powershell脚本,用于从文件中的名称列表创建文件夹

时间:2017-11-15 13:17:06

标签: windows powershell scripting directory copy-item

我有一个文本文件,其中包含不同目录中的文件列表,例如

  • C:\FolderOne\Testing.jpg
  • C:\FolderTwo\Test.jpg

我想把这些名字变成文件夹。如果一个文件夹中存在两个文件,例如FolderOne,那么这两个文件应该进入同一个文件夹。

我知道反斜杠也必须用下划线替换,冒号也用下划线代替。

到目前为止,我能够从文件列表中获取内容并将其复制到指定的文件夹中。我想为文件列表中的每个文件创建一个文件夹,但文件夹名称需要包含C_FolderOneC_FolderTwo等等....

任何帮助将不胜感激!

到目前为止我所拥有的:

Param (
    [String]$model
)

# Debug line
$model = "DEV2";

[String]$drive = "C:";

#Go to the PG_dump directory
CD "C:\Program Files\PostgreSQL\9.4\bin"

##Execute PG_dump with no password
.\pg_dump.exe --host localhost --port 5432 --username "postgres" --role "postgres" --no-password  --format custom --blobs --verbose --file     "C:\Test\$date-DEV-$X.backup" "DEV"

#Get the content from the file list
$file_list = Get-Content "$drive\Testing\DEV33.txt" 
foreach ($file in $file_list)
{    
    Copy-Item  $file -Destination "C:\Testing"
}

1 个答案:

答案 0 :(得分:2)

这是一种做你要问的方法。它将获取文件的父路径并创建目标文件夹。

## Get the content from the file list.
foreach ($file in Get-Content -Path "$drive\Testing\DEV33.txt") {
    $name = (Split-Path -Path $file -Parent) -replace '\\', '_' -replace ':'
    New-Item -Path "path\to\$name" -ItemType Directory
}