我正在尝试在powershell中加入两个字符串并导出到一个文件,但我没有得到理想的结果,我对powershell很新。
$vm=Get-Content "c:\vmfile.txt"
ForEach($vm1 in $vm)
{
$boot="_boot.vhd"
$bname=$vm1+$boot
write-output $bname+$boot | out-file "C:\rep.txt" -Append
}
为此,我期待文本文件中的输出:
VM_boot.vhd
VM2_boot.vhd
VM3_boot.vhd
但结果如下:
VM
VM2
VM3_boot.vhd
只有结果的最后一行才有正确的输出。
答案 0 :(得分:1)
你可以这样做,不知道为什么你连续$ boot两次:
public sealed partial class MainPage
{
public MainPage()
{
InitializeComponent();
}
private void MainPage_OnLoaded(object sender, RoutedEventArgs e)
{
var scrollViewer = ListV.GetFirstDescendantOfType<ScrollViewer>();
scrollViewer.ViewChanged+=BarScroll;
}
private void BarScroll(object sender, ScrollViewerViewChangedEventArgs e)
{
var scrollbars = (sender as ScrollViewer).GetDescendantsOfType<ScrollBar>().ToList();
var verticalBar = scrollbars.FirstOrDefault(x => x.Orientation == Orientation.Vertical);
if (verticalBar.Value >= verticalBar.Maximum)
{
System.Diagnostics.Debug.WriteLine("We are at the bottom");
Messenger.Default.Send<NotificationMessage>(new NotificationMessage("LoadMore"));
}
}
}
或者更像Powershellish,比如使用ForEach-Object:
$vm=Get-Content "c:\vmfile.txt"
$boot="_boot.vhd"
ForEach($vm1 in $vm)
{
$bname=$vm1+$boot
$bname | out-file "C:\rep.txt" -Append
}
确保初始化/创建c:\ rep.txt,否则它只会附加
答案 1 :(得分:1)
让我们更简单。
Get-Content "c:\vmfile.txt" | ForEach-Object {
"$($psitem)_boot.vhd" | out-file "C:\rep.txt" -Append
}
PowerShell是关于对象和管道的,这个例子同时具有两者。 PowerShell将读取该文件,并为文件中的每一行运行波形(花括号)中的代码块。
在squiqqles中,我们引用了我们当前的对象(使用$ psitem指针[但很多人使用$ _代替它们,它们的意思相同]),我们正在构建字符串我们想要转储到文件中。
更简单,我认为这是PowerShell应该如何使用的一个更好的例子。如果您对此有用,请与我们联系:_