我正在尝试使用C#中的PowerShell在桌面上创建一个新文件.在终端你会做:
cd desktop
$null >> newfile.txt
Run Code Online (Sandbox Code Playgroud)
所以我试图用C#来模仿以前的陈述:
using (PowerShell PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddScript("cd desktop; $null >> newfile.txt");
PowerShellInstance.Invoke();
}
Run Code Online (Sandbox Code Playgroud)
这样运行没有任何例外,但文件不是在桌面上创建的.谁能指出我做错了AddScript什么?
编辑
看起来问题来自于使用cd然后按顺序创建.
我能够通过这样做来实现它
PowerShellInstance.AddScript("$null >> C:\\users\\me\\Desktop\\newfile.txt");
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何做cd命令后跟另一个请告诉我.
对我来说,命令cd desktop本身似乎不起作用。如果你打开一个powershell控制台,那么它打开的默认路径是C:\Users\user_name\,很可能是从c#开始的,它不是用该路径打开,而是用当前项目的调试文件夹的工作目录打开;[@Nived 评论]
您当前的代码没有问题。只需将脚本语句更改为下面的内容即可正常工作
cd C:\Users\user_name\desktop; $null >> newfile.txt
Run Code Online (Sandbox Code Playgroud)
这样你的 C# 代码应该是这样的
using (PowerShell PowerShellInstance = PowerShell.Create())
{
PowerShellInstance.AddScript(@"cd C:\Users\user_name\desktop; $null >> newfile.txt");
PowerShellInstance.Invoke();
}
Run Code Online (Sandbox Code Playgroud)