【发布时间】:2021-01-08 06:31:41
【问题描述】:
所以我试图在 C# 中更改文本文件的创建日期。用户将输入文件的创建日期,然后它将文本文件的创建日期更改为用户输入的日期。问题是它出于某种原因不断添加 ' 导致错误消息,它正在调用 Powershell 来完成此操作:
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
string dir = textBox1.Text;
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ChildItem c:\\encryptedmessagehere.txt | % {$_.CreationTime = '"+ dir + "'}");
ps.Invoke();
}
}
}
麻烦的是,在 "'}"); 之后,它会自动添加另一个 ',从而使 powershell 命令更改日期不正确。有没有办法阻止它在末尾添加 '?
返回的错误是:
System.Management.Automation.CommandNotFoundException H结果=0x80131501 消息=术语“获取 - ChildItem C:\encryptedmessagehere.txt | % {$_.CreationTime = '06/12/12 09:27:03 AM'} ' 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
谢谢。
【问题讨论】:
-
Get - ChildItemGet-ChildItem,没有任何空格。 -
“有没有办法阻止它在末尾添加 '?” 据我所知,这只是错误消息中的分隔符。不是实际命令字符串的一部分。
-
谢谢,我刚试过。问题仍然存在,在末尾添加 ',谢谢。
-
真的有必要为此使用 PowerShell 吗?有什么东西阻止您使用
FileInfo对象并使用它来更新日期吗? -
如果日期时间格式是你在这个解决方案中使用 PowerShell 的全部,那么你让事情变得太复杂了。
标签: c# string visual-studio powershell