powershell - 在 Powershell 中使用 Range 运算符生成按字母顺序命名的文本文件
问题描述
我应该编写一个脚本来按字母顺序从特定文件中对单词进行排序,并将它们放入名为 A.txt、B.txt 等直到 Z.txt 的 26 个文本文件中。
我能够在 Powershell 中实现以下代码,它输出以数字命名的文本文件:
$Content = Get-Content ".\sample.txt"
$Content = ($Content.Split(" .,:;?!/()[]{}-```"")|sort)
$linecount = 0
$filenumber = 0
$destPath = "C:\"
$destFileSize = 26
$Content | % {
Add-Content $destPath\$filenumber.txt "$_"
$linecount++
If ($linecount -eq $destFileSize) {
$filenumber++
$linecount = 0
}
}
如何更改代码以显示按字母顺序命名的输出文本文件
解决方案
用于Group-Object
根据第一个字母对单词进行分组:
$Content |Group {$_.Substring(0,1).ToUpper()} |ForEach-Object {
$path = Join-Path $destPath $_.Name
$_.Group |Set-Content $path
}
推荐阅读
- javascript - 带值的单选选项默认检查
- c# - Unity Hololens SOAP Web 服务
- android - 如何将纪元时间转换为日期,时区以毫秒为单位的偏移量定义
- powershell - 枚举 SpecialFolders 枚举
- windows - Packer for Windows Server 中的文件配置程序
- php - DomCrawler 过滤器 html 标签
- flutter - 如何以编程方式缩放或收缩颤动?
- xml - 为什么在 XML 中附加重复元素?
- c# - 使用 Linq 任何查询或表达式来构建查询以提高性能
- python - 如何处理异常,让脚本继续工作?