gpt4 book ai didi

powershell - 如何使用/Powershell 检索递归目录名称?

转载 作者:行者123 更新时间:2023-12-03 09:43:20 25 4
gpt4 key购买 nike

我正在尝试使用 Powershell 使用 cli 编译器/链接器自动构建项目。我想将脚本放在项目的根目录中,让它递归检查所有源文件并编译它们,编译器输出指向与源文件相同的目录。我还想收集一个 *.c 列表作为逗号分隔的变量作为链接器的输入。这是典型的情况:

//projects/build_script.ps
//projects/proj_a/ (contains a bunch of source files)
//projects/proj_b/ (contains a bunch of source files)

我希望扫描所有子目录并编译每个 *.c 文件的源代码。这是我到目前为止:
$compilerLocation = "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.63\bin\picc18.exe";
$args = "--runtime=default,+clear,+init,-keep";
$Dir = get-childitem C:\projects -recurse
$List = $Dir | where {$_.extension -eq ".c"}
$List | $compilerLocation + "-pass" + $_ + $args + "-output=" + $_.current-directory;

我意识到 $_.current-directory 不是真正的成员,而且我的语法可能还有其他问题。对于我的问题含糊不清,我深表歉意,我非常愿意进一步解释可能看起来不清楚的内容。

最佳答案

如果我不明白您的确切要求,请原谅我。下面是递归获取所有扩展名为 .txt 的文件,然后列出文件名和包含目录名的示例。为此,我访问 FileInfo 对象上的 DirectoryName 属性值。见 FileInfo文档以获取更多信息。

$x = Get-ChildItem . -Recurse -Include "*.txt"
$x | ForEach-Object {Write-Host "FileName: $($_.Name) `nDirectory: $($_.DirectoryName)"}

尝试一下您当前的代码:
$compilerLocation = "C:\Program Files (x86)\HI-TECH Software\PICC-18\PRO\9.63\bin\picc18.exe";
$args = "--runtime=default,+clear,+init,-keep";
$List = Get-ChildItem C:\project -Recurse -Include *.c
$List | ForEach-Object{#Call your commands for each fileinfo object}

关于powershell - 如何使用/Powershell 检索递归目录名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com