powershell 计算文件夹中的文件并创建带有文件名结果的文本文件

标签 powershell file count

如果我在一个文件夹中有 10 个 *.csv 文件,我想创建一个输出文件为 D:\10.txt
我无法正确使用语法,这是我的最后一次尝试:
(Get-ChildItem 'D:\Data\' -File -Include *.csv).Count | Out-File -filepath "D:\test$($_).txt"
我更喜欢 oneliner,因为另一个系统必须调用它。

有人可以帮我吗?非常感谢 !

最佳答案

自动$_变量 - 表示管道每个步骤中的当前输入对象 - 只能用于作为脚本 block 的参数 ( { ... } ),不能用于可扩展字符串 ( "..." )。

每个输入对象的脚本 block 最常与 ForEach-Object 一起使用。 cmdlet,但您也可以将其用作 delay-bind script-block parameter带有管道绑定(bind)参数。

虽然这不适用于 Out-File , 它与 Set-Content ,这通常是与字符串一起使用的正确工具:

(Get-ChildItem D:\Data -File -Filter *.csv).Count |
  Set-Content -LiteralPath { "D:\test$_.txt" }

请注意,我已替换 -Include-Filter ,不仅效率更高,而且避免了-Include的陷阱仅适用于输入目录路径,不适用于其中的项目 - 见 this GitHub issue .

警告 : 在 Windows PowerShell 中 - 但幸运的是不再在 PowerShell Core 中,现在一直使用(BOM-less)UTF-8 - Out-FileSet-Content默认情况下使用不同的字符编码:UTF-16LE(“Unicode”)与系统的事件 ANSI 代码页(“默认”);使用 -Encoding参数以根据需要指定所需的编码。

关于powershell 计算文件夹中的文件并创建带有文件名结果的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58423633/

相关文章:

file - 是否有 BoxedApp SDK 的替代品?

python - 计算字符串中的连续字符

powershell - 使用 powershell 检索用户配置文件的大小

azure - 使用 Powershell 而不是 Bash 请求 Azure Databricks 访问 token

python - 在python中复制文件名中包含特定字符串的文件

javascript - JS如何创建一个计算主题标签数量的函数

mysql - 加入 3 个表并选择计数

powershell - 为什么 Windows 7 中的 PowerShell 5 没有与 Windows 10 相同的功能?

powershell - -ErrorAction Stop 在 Copy-Item 中不起作用

javascript - JavaScript 中的文件扩展名验证