如何使用RUN中的特定窗口大小启动PowerShell?

Sus*_*ith 5 windows powershell

如何从具有特定窗口大小的"RUN"启动PowerShell?是否有任何争论,如"-size:100x100".可以使用RUN,还是有其他方法来运行给定大小的程序窗口?

mkl*_*nt0 18

从Windows Run对话框:

以下命令在控制台窗口中以默认大小启动PowerShell,然后将窗口大小调整为100列x 50行:

powershell -noexit -command "[console]::WindowWidth=100; [console]::WindowHeight=50; [console]::BufferWidth=[console]::WindowWidth"
Run Code Online (Sandbox Code Playgroud)

注意:powershell -noexit -command "mode con cols=100 lines=50"原则上起作用,但有一个不幸的副作用,即丢失任何回滚缓冲区(缓冲区高度设置为窗口高度).

该命令使用[console](System.Console).NET类型设置窗口宽度和高度,另外将缓冲区宽度设置为与窗口宽度相同的值,以确保不显示水平滚动条.

从现有的控制台窗口:

如果从现有命令提示符或PowerShell控制台运行上述命令,则新的PowerShell会话将在当前窗口中启动,因此会调整当前窗口的大小.
以下是 打开窗口的方法:

  • 从命令提示符(cmd.exe):使用start:

    start powershell -noexit -command "[console]::windowwidth=100; [console]::windowheight=50; [console]::bufferwidth=[console]::windowwidth"
    
    Run Code Online (Sandbox Code Playgroud)
  • 从PowerShell控制台窗口:使用Start-Process(注意参数列表周围的单引号):

    start-process powershell '-noexit -command "[console]::windowwidth=100; [console]::windowheight=50; [console]::bufferwidth=[console]::windowwidth"'
    
    Run Code Online (Sandbox Code Playgroud)

如果您不希望使用默认大小打开窗口调整窗口大小:

上面的命令在使用默认大小创建新窗口运行,这可能在视觉上具有破坏性.

为防止这种情况,您有两种选择:

  • 创建目标快捷方式文件powershell.exe,配置其属性以设置所需大小,然后运行快捷方式文件(*.lnk)以打开窗口.

  • 根据您的喜好更改默认窗口大小,但请注意,这适用于仅使用可执行文件名称(或路径)启动的所有 PowerShell会话:

    • 交互方式:

      • 按,Win+R然后提交File > Open Windows Powershell

      • 打开新窗口的系统菜单,powershell根据需要选择并配置窗口大小.
        以同样方式启动的未来窗口将具有相同的大小.

    • 编程方式:

      • 控制台窗口属性存储在注册表中Properties,其HKEY_CURRENT_USER\ConsoleREG_DWORD包含窗口大小,并WindowSize包含缓冲区大小:

      • Key ScreenBufferSize(HKEY_CURRENT_USER\Console)包含整体默认值.

      • 子键(例如HKCU:\Console)包含特定可执行文件/窗口标题的替代.

        • 重要提示:这些设置适用于通过控制台窗口启动快捷方式文件(%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe) ; 后者动态继承整个控制台默认值.lnk- 除了HKEY_CURRENT_USER\ConsoleWindows 10(不确定Windows 8/8.1) - 除了稍后通过CodePage对话框覆盖的值,直接保存在文件中.
      • 子键从其父级继承值,这会使子键的设置值复杂化 - 请参阅下面的示例.


Properties编程方式设置窗口大小默认值:

以下PSv5 +代码段将powershell.exe启动的控制台窗口的默认窗口大小设置为100列乘50行.

请注意,屏幕缓冲区值从直接存储的整体默认设置继承的事实powershell.exe增加了复杂性.

"$env:AppData\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk"