powershell如何把脚本文件改成窗口命令?
powershell吧
全部回复
仅看楼主
level 1
蓝梦妖蝶 楼主
如果把这一句命令用脚本xxx.ps1文件运行。就可以执行。
如果用powershell -c 加代码的方式运行。就会报错。
powershell .\xxx.ps1
False
powershell -c $code = '[DllImport("user32.dll")]public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';add-type -MemberDefinition $code -Namespace my -Name WinApi;[my.WinApi]::ShowWindow([my.WinApi]::FindWindow('Notepad', '未命名 - Notepad'), 2)
所在位置 行:1 字符: 117
+ ... ndWindow(string lpClassName, string lpWindowName);[DllImport(user32.d ...
+ ~
表达式中缺少右“)”。
2023年11月07日 08点11分 1
level 1
蓝梦妖蝶 楼主
false的问题找到了。原因是中文字符的原因。但是这不是单独运行时报错的原因。
但还是单独运行powershell -c $code ...会报错。与中文字符无关。这个如何才能解决呢
$code = '[DllImport("user32.dll")]public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);';add-type -MemberDefinition $code -Namespace my -Name WinApi;[my.WinApi]::ShowWindow([my.WinApi]::FindWindow('Notepad3', '123.txt [D:\] - Notepad3'), 9)
2023年11月07日 09点11分 2
level 1
pwsh -c {
$code='
[DllImport("user32.dll")]public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
';
add-type -MemberDefinition $code -Namespace my -Name WinApi;
[my.WinApi]::ShowWindow([my.WinApi]::FindWindow('Notepad', '未命名 - Notepad'), 2)
}
2023年12月16日 02点12分 3
1