我需要将目录中的所有文件名(最好不包括后缀)放入文本文件中。到目前为止,我使用的是
dir /b > filex.txt
但我需要在一行中输出,并且需要OR
在每个文件名后面都有输出,这样我就可以轻松复制这些文件名并将它们放入 Windows 搜索中。
文本文件中的输出应如下所示:
file OR file1 OR file2
答案1
另一个 PowerShell 答案:
(dir | % {$_.BaseName} | select -Unique) -join ' OR ' > outfile.txt
这将获取当前目录中的所有对象 ( dir
),仅获取其文件标题而不包含扩展名 ( 属性BaseName
),删除重复项 (-Unique
的标志select
),将所有这些合并为一个以 分隔的字符串 OR
,然后将其输出到outfile.txt
。 您不会在末尾得到多余的“OR”。
如果要将所有名称都括起来,请将其替换$_.BaseName
为'"' + $_.BaseName + '"'
。如果要将完成的字符串直接复制到剪贴板,请将>
及其后的所有内容替换为| Set-Clipboard
。
将脚本保存为.ps1
文件。您需要按照启用脚本部分中的说明进行操作PowerShell 标签 wiki完成后,您可以从批处理文件或命令提示符运行它,如下所示:
powershell .\myscript.ps1
答案2
如果您不介意将其放在单独的行上,则可以使用下面的方法。
(get-childitem -path c:\test).basename | foreach-object {$_ -replace "$_", "$_ or "} >> c:\Filename.txt
这将获取 c:\test 中的文件。.basename 删除文件类型扩展名。foreach 将正在通过管道传输的内容替换为在其后或之后通过管道传输的内容。
另请注意,或后面有一个空格。如果不需要,请将其删除。
希望这可以帮助。
谢谢,蒂姆。