【发布时间】:2016-09-24 21:57:33
【问题描述】:
我有一个应用程序,我从 git status 获取新\修改文件的列表,然后我从该文件中获取不完整的字符串,将它们与根目录文件路径连接,然后将这些文件移动到存档。我有一半的工作,但我使用 powershell 的性质不提供错误报告,并且该过程显然出错了。这是我尝试使用的代码。 (它已经经历了几次迭代,请原谅注释掉的部分)基本上我试图从 txt 文件中获取内容,然后替换?使用 \ (由于某种原因,创建 txt 的过程喜欢正斜杠......),然后在空格处拆分该字符串。我感兴趣的字符串的唯一部分是最后一部分,我试图将其与已知的工作根目录连接,然后我试图将它们移动到存档位置。在你问之前,这是我们不愿意在 git 中跟踪的东西,由于文件的性质(它们是带有时间戳的测试输出,我们希望在每次测试运行的基础上保存它们,而不是在 git 中)我我对 powershell 还是很陌生,而且我的头撞在这块石头上太久了。
Get-Content $outfile | Foreach-Object
{
#$_.Replace("/","\")
#$lineSplit = $_.Split(' ')
$_.Split(" ")
$filePath = "$repo_dir\$_[-1]"
$filePath.Replace('/','\')
"File Path Created: $filePath"
$untrackedLegacyTestFiles += $filePath
}
Get-Content $untrackedLegacyTestFiles | Foreach-Object
{
Copy-Item $_ $target_root -force
"Copying File: $_ to $target_root"
}
}
$outfile 是一个文本文件,其中每一行都有一个部分文件路径,通向一个由我们使用的测试应用程序生成的 txt 文件。此信息由 git 提供,因此在 $outfile txt 文件中如下所示:
!! Some/File/Path/Doc.txt
“!!”意思是 git 将其视为一个新文件,但它可能是从“M”到“??”的几个字符。这就是为什么我试图在空格上拆分它并只取最后一个元素。 我想要的输出是从 $outfile (Some/File/Path/Doc.txt) 中获取拆分字符串的最后一个元素,并将其与 $repo_dir 连接以形成完整的文件路径,然后移动 Doc.txt到存档位置 ($target_root)。
【问题讨论】:
-
您能否提供来自
$outfile的示例字符串和您想要的输出?另外,你卡在哪里了? -
添加了 $outfile 的示例。希望对你有帮助
-
是的。希望我的回答能帮到你。
标签: string powershell split