Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中将文件另存为.ps1#_C#_Powershell - Fatal编程技术网

C# 在C中将文件另存为.ps1#

C# 在C中将文件另存为.ps1#,c#,powershell,C#,Powershell,我目前正在编写一个应用程序来解析文本文件中的PowerShell命令,然后尝试将结果保存为.ps1以运行这些命令。我将命令保存为文本文件没有问题,但我似乎不知道如何将输出保存为.ps1文件 代码: string[]allLines=File.ReadAllLines(inputFile); int start=-1; int end=-1; for(int i=0;i

我目前正在编写一个应用程序来解析文本文件中的PowerShell命令,然后尝试将结果保存为.ps1以运行这些命令。我将命令保存为文本文件没有问题,但我似乎不知道如何将输出保存为.ps1文件

代码:

string[]allLines=File.ReadAllLines(inputFile);
int start=-1;
int end=-1;
for(int i=0;i
当使用“File.writeAllinesAsync(“testOut.txt”,output)”行运行此代码时,没有问题,因此问题似乎是该文件。writeAllinesAsync()只能写入文本文件,或者至少不能写入.ps1文件

有没有办法直接写入.ps1,或者有没有办法写入.txt,然后将其转换为.ps1


谢谢你的帮助

async
方法需要
wait
ed。如果您自己不在
async
方法中,只需使用同步版本(
File.writeAllines
)。使用WriteAllinesAsynca时,我仍然会遇到与使用WriteAllinesAsynca时相同的问题。ps1
文件只不过是一个具有不同扩展名的文本文件。具体来说,当您
File.writeAllinesAsync(“testOut.ps1”,output)时遇到的问题是什么?您不需要发布整个项目来问这个问题。只需尝试
File.writeAllines(“C:\\some.stuff”,新字符串[]{“somestuff”})
即可查看它是否正常工作。如果File.writeAllines没有给您任何错误消息,则很可能是您在错误的目录中查找文件。尝试指定绝对路径。
        string[] allLines = File.ReadAllLines(inputFile);
        int start = -1;
        int end = -1;
        for (int i = 0; i < allLines.Length; i++)
        {
            if (allLines[i].Equals("STRING powershell Start-Process notepad -Verb runAs") && start == -1)
            {
                start = i;
            }
            else if (allLines[i].Equals("CTRL s") && end == -1)
            {
                end = i;
            }
        }
        string[] lines = allLines[start..end];
        List<string> output = new List<string>();
        foreach (string line in lines)
        {
            if (line.StartsWith("STRING"))
            {
                output.Add(line.Replace("STRING ", ""));
            }
        }

        File.WriteAllLinesAsync("testOut.ps1", output);
        System.Console.ReadLine();