6 CMD 與 PowerShell 指令大全、C 程序終端運行、字符編碼切換指南

1 CMD 與 PowerShell 常用指令

????????在命令行環境中高效運行程序,掌握終端的基本操作命令至關重要。無論是 Windows 系統下的 CMD(命令提示符)還是 PowerShell,它們都配備了一系列實用的命令,助力我們管理文件、執行程序以及進行系統配置。以下是對 CMD 和 PowerShell 中常用終端指令的詳細解析。

功能描述CMD 命令PowerShell 命令備注
清屏clsClear-Host 或 clear 或 cls

在 CMD 中,直接使用 cls 即可清屏;

在 PowerShell 中三者均可,但 Clear-Host 更符合 PowerShell 風格。

Tab 補全自動補全(按 Tab 鍵)自動補全(按 Tab 鍵)

在輸入命令、路徑或文件名時,按 Tab 鍵可自動補全或顯示可能的選項;

若存在多個匹配項,多次按下 Tab 鍵可循環顯示這些選項,便于選擇。

切換路徑cd [路徑]Set-Location [路徑] 或 cd [路徑]cd 在兩者中均可使用,但 PowerShell 的 Set-Location 提供了更多功能。
查看當前路徑cd(無參數)Get-Location 或 pwd

cd 在 CMD 中無參數時顯示當前路徑;

PowerShell 中 pwd 是 Print Working Directory 的縮寫。

列出目錄內容dirGet-ChildItem 或 ls

dir 在 CMD 中列出目錄內容;

PowerShell 中 ls 是 List 的縮寫,更簡潔。

創建目錄mkdir [目錄名]New-Item -ItemType Directory -Name [目錄名] 或 mkdir [目錄名]mkdir 在兩者中均可使用,但 PowerShell 的 New-Item 提供了更靈活的選項。
刪除文件del [文件名]Remove-Item [文件名]

del 在 CMD 中刪除文件;

PowerShell 中 Remove-Item 更通用,也可刪除目錄。

刪除目錄rmdir [目錄名]Remove-Item [目錄名] -Recurse

rmdir 在 CMD 中刪除空目錄;

PowerShell 中需加 -Recurse 參數刪除非空目錄。

查看命令幫助help [命令名]Get-Help [命令名]

help 在 CMD 中提供基本幫助;

PowerShell 的 Get-Help 提供了更詳細的幫助信息。

執行程序直接輸入程序名或路徑需注意路徑問題

在 CMD 中,若程序位于當前目錄,可直接輸入程序名運行;

在 PowerShell 中,若當前路徑未加入 PATH 環境變量,需使用?“.\程序名” 的形式運行當前目錄下的程序。

執行程序時的路徑問題:

  • 在 CMD 中:如果程序位于當前目錄,你可以直接輸入程序名來運行它,即使當前目錄沒有加入 PATH 環境變量。
  • 在 PowerShell 中:出于安全考慮,如果當前目錄沒有加入 PATH 環境變量,你需要使用 .\ 程序名 的形式來運行當前目錄下的程序。這里的 .\ 表示當前目錄

2 在終端中運行 C 程序

????????在終端中運行 C 程序是開發者常見的需求,不同的終端環境(如 CMD、PowerShell 或 VSCode 內置終端)提供了各自的操作方式。接下來,我將詳細講解如何在這些終端中編譯并運行 C 程序,包括具體的命令示例和注意事項,幫助你快速上手。

2.1?定位文件路徑

????????首先,我們需要確定當前源文件的存儲位置。如果你是在 VS Code 中編輯源代碼,可以通過以下簡單步驟快速定位源文件所在的磁盤位置,以便后續在終端中進行編譯和運行操作。

????????具體操作如下:在 VS Code 的文件列表中,將鼠標懸停在目標源文件(例如 main.c)上,然后右鍵單擊該文件。在彈出的右鍵菜單中,選擇 “在文件資源管理器中顯示” 選項。

????????這樣,文件資源管理器將會打開,并直接定位到該文件所在的目錄位置。?

????????若直接在文件資源管理器中雙擊 main.exe 文件,程序運行結束后命令行窗口會立即關閉,導致無法查看程序的輸出結果。這是因為命令行窗口在程序執行完畢后自動退出,未給用戶提供足夠的時間查看信息。

????????為避免此問題,我們建議在終端中運行程序。在終端中執行程序時,窗口會保持打開狀態,直到用戶手動關閉,從而可以完整地查看程序的輸出和調試信息。

2.2 在 PowerShell 中執行程序

????????我們可以在包含 main.exe 文件的文件夾空白處右擊鼠標,從彈出的菜單中選擇 “在終端中打開” 選項,操作如下:

????????請注意,當前使用的終端是 PowerShell。在 PowerShell 中,可通過 ls 命令查看目錄內容

????????需要特別注意的是,在 PowerShell 中運行程序或執行指令時,必須指定文件的相對路徑,其中 .\ 代表當前目錄。為提升操作效率,在輸入文件名(如 main.exe)后,可按下 Tab 鍵自動補全前面的相對路徑(即 .\)。具體操作示例如下圖所示:

2.3 在?CMD 中執行程序

????????除了使用 PowerShell,你還可以在命令提示符(CMD)中運行程序。以下是具體步驟:

? ? ? ? 1. 打開命令提示符:按下 Win + R 鍵,輸入 cmd,然后按 Enter 鍵。

? ? ? ? 2. 切換到程序所在的磁盤:如果程序位于 D 盤,輸入 d: 并按 Enter 鍵。

????????3. 進入程序所在的文件夾:例如,程序位于 D:\Code_Space\C_Language\Chapter1_HelloWorld,輸入 cd D:\Code_Space\C_Language\Chapter1_HelloWorld
并按 Enter 鍵。

????????4. 查看目錄內容(可選):輸入 dir 命令并按 Enter 鍵,查看當前目錄下的文件和文件夾。

????????5. 運行程序:輸入 main.exe 并按 Enter 鍵,程序將開始執行。?

? ? ? ? 你也可以使用文件的絕對路徑來直接運行程序。具體操作是:在命令提示符中輸入文件的絕對路徑,格式為:盤符:\路徑\文件名.后綴名。為方便操作,你可以在文件資源管理器中右鍵點擊目標文件,選擇 “復制文件地址” 或直接復制文件目錄上方的完整路徑,然后將其粘貼到命令提示符中執行。

2.4?添加 "在此打開 CMD" 右鍵菜單

????????在通過 CMD 方式運行程序時,頻繁切換盤符和路徑可能會帶來不便。為簡化操作,你可以通過修改注冊表,在文件夾的右鍵菜單中添加 “在此打開 CMD” 選項。以下是具體步驟:

? ? ? ? 1. 打開注冊表編輯器:按下 Win + R 鍵,打開 “運行” 窗口。輸入 regedit,點擊 “確定” 按鈕,進入注冊表編輯器。

? ? ? ? 2. 定位到目標路徑:在注冊表編輯器的地址欄中,輸入路徑:計算機\HKEY_CLASSES_ROOT\Directory\Background\shell,然后按 Enter 鍵。

????????3. 新建 “在此打開 CMD” 選項:在 shell 項下,右鍵選擇 “新建” > “”。將新建的項命名為 open_cmd

????????雙擊 open_cmd 項的默認值,輸入“在此打開 cmd”,作為該選項的顯示名稱。?

? ? ? ? 4. 獲取 CMD 的路徑:按下 Win 鍵,輸入“cmd” 并搜索,然后選擇 “打開文件位置”。

????????右鍵命令提示符選擇 “打開文件所在的位置”。

????????然后得到 cmd.exe 的路徑為:C:\Windows\system32\cmd.exe??

? ? ? ? 5. 設置圖標(可選):在 open_cmd 項下,右鍵點擊空白處,選擇 “新建” > “字符串值”。

????????將新建的字符串值命名為 Icon。雙擊 Icon 字符串值,輸入 cmd.exe 的路徑(如 C:\Windows\system32\cmd.exe),為選項設置圖標。?

????????6. 配置命令執行路徑:在 open_cmd 項下,右鍵選擇 “新建” > “”。將新建的項命名為 command。

????????雙擊 command 項的默認值,輸入 cmd.exe 的路徑,如 C:\Windows\system32\cmd.exe。

? ? ? ? 7. 測試右鍵菜單選項:在任意文件夾的空白處,右鍵點擊鼠標。在彈出的右鍵菜單中,選擇 “在此打開 cmd” 選項。此時,CMD 窗口將在當前文件夾中打開,你可以直接輸入可執行文件的名稱來運行程序,無需再手動切換盤符和路徑。?

2.5 在?VS Code 終端中執行程序?

????????除了利用系統自帶的終端(如 PowerShell 或 CMD)運行程序外,你還可以直接在 VS Code 的內置終端中執行程序。以下是具體操作步驟:

  1. 打開 VS Code 并加載項目
    • 啟動 VS Code,并打開包含您源文件的文件夾或工作區。
  2. 打開內置終端
    • 在 VS Code 中,你可以通過多種方式打開終端:
      • 使用快捷鍵 Ctrl+`(反引號,通常位于鍵盤左上角,與 ~ 鍵共享)。
      • 點擊菜單欄中的 “終端” > “新建終端”
      • 使用命令面板(Ctrl+Shift+P),輸入 “終端: 創建新終端” 并選擇。
  3. 導航到程序所在目錄(如果需要)
    • 默認情況下,終端會打開在當前工作區的根目錄
    • 如果你的程序位于子目錄中,可以使用 cd 命令切換到相應目錄。例如:cd path/to/your/program
  4. 編譯程序(如果需要)
    • 如果你的程序需要編譯(如 C/C++ 程序),請在終端中使用相應的編譯器命令。
  5. 運行程序

????????在 PowerShell 中,若當前路徑未加入 PATH 環境變量,需使用?.\程序名” 的形式運行當前目錄下的程序。其中 .\ 代表當前目錄。為提升操作效率,在輸入文件名(如 main.exe)后,可按下 Tab 鍵自動補全前面的相對路徑(即 .\)

????????在 CMD 中,若程序位于當前目錄,可直接輸入程序名運行


3?字符編碼切換指南

3.1?編碼切換的必要性

????????在計算機系統中,編碼(Encoding)是指將字符(如字母、數字、符號等)轉換為計算機能夠理解和存儲的二進制數據的過程。不同的編碼方式支持不同的字符集,并且可能以不同的方式表示相同的字符。當我們在命令行或腳本中處理文本數據時,如果編碼方式不匹配,就可能導致亂碼問題。

????????在編程和計算機系統中,亂碼問題通常是由于字符編碼不匹配引起的。當你編寫一個包含非 ASCII 字符(如中文)的程序,并在控制臺或終端中運行時,如果控制臺的字符編碼不支持這些字符,就會出現亂碼。

????????以下面這個程序為例:

#include <stdio.h>int main()
{// printf("Hello,World");printf("你好,世界!");return 0;
}

????????這個程序輸出了一句中文:“你好,世界!”。如果你在一個不支持 UTF-8 編碼的控制臺中運行這個程序,比如默認使用 GBK 或其他非 UTF-8 編碼的 Windows CMD,那么輸出的中文可能會顯示為亂碼。?

????????若使用 VS Code 的自動編譯和運行功能,程序運行結果將不會出現亂碼現象。

????????然而,若直接在終端環境中(powershell 或 CMD)運行程序,輸出內容可能會出現亂碼,具體示例如下:

3.2 解決中文亂碼問題

3.2.1 PowerShell 解決方案

????????如果你發現 PowerShell 控制臺輸出亂碼,可能是因為控制臺默認的編碼(通常是 UTF-16)與外部程序或文件的編碼不匹配。你可以嘗試將控制臺的輸出編碼設置為 UTF-8:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
  • [Console]:這是一個 .NET 類型,代表控制臺。在 PowerShell 中,它用于訪問和控制與控制臺相關的屬性和方法。

  • OutputEncoding:這是 [Console] 類型的一個屬性,表示控制臺輸出的文本編碼。默認情況下,PowerShell 控制臺的輸出編碼可能不是 UTF-8,這可能導致在輸出包含非 ASCII 字符的文本時出現亂碼。

  • [System.Text.Encoding]::UTF8:這是一個 .NET 枚舉值,代表 UTF-8 編碼。UTF-8 是一種廣泛使用的字符編碼,能夠表示 Unicode 標準中的任何字符,并且與 ASCII 編碼兼容(即 ASCII 字符在 UTF-8 中使用相同的字節表示)。

????????通過執行這段代碼,將 PowerShell 控制臺的輸出編碼設置為 UTF-8。這樣,當程序或腳本輸出包含非 ASCII 字符的文本時(如中文字符、特殊符號等),這些字符就能以正確的形式顯示在控制臺上,而不會出現亂碼。

3.2.2 CMD 解決方案

????????在 CMD(命令提示符)中,如果你遇到輸出亂碼的問題,通常是因為控制臺的代碼頁設置不正確。默認情況下,CMD 使用的代碼頁可能不支持某些字符集,特別是當你需要處理非 ASCII 字符(如中文、日文或其他國際字符)時。這時就會使用到 chcp 65001 命令。

chcp 65001
  • chcp:這是?CMD 中的一個命令,用于更改控制臺的代碼頁。代碼頁(Code Page)是一個字符映射表,它定義了字符與字節序列之間的對應關系。不同的代碼頁支持不同的字符集。
  • 65001這是 UTF-8 的代碼頁編號。通過執行 chcp 65001,你可以將 CMD 控制臺的代碼頁設置為 UTF-8,從而支持更廣泛的字符集,包括中文、日文、韓文等。

3.3?UTF-8 編碼概述

????????UTF-8(Unicode Transformation Format - 8-bit)是一種針對 Unicode 的可變長度字符編碼,它能夠用來表示 Unicode 標準中的任何字符,并且與 ASCII 編碼向后兼容。UTF-8 使用 1 到 4 個字節來編碼一個字符,具體使用多少字節取決于字符的 Unicode 碼點:

  • ASCII 字符(U+0000 到 U+007F):使用 1 個字節編碼,與 ASCII 編碼完全相同。
  • 常用字符(如拉丁字母、希臘字母、西里爾字母等,大部分在 U+0080 到 U+07FF 范圍內):使用 2 個字節編碼。
  • 其他字符(如中文、日文、韓文等大部分在 U+0800 到 U+FFFF 范圍內):使用 3 個字節編碼。
  • 特殊字符和補充字符(U+10000 到 U+10FFFF):使用 4 個字節編碼。

3.4 采用 UTF-8 的優勢

  1. 廣泛支持:UTF-8 是一種國際標準的字符編碼,被廣泛應用于互聯網、操作系統、編程語言和各種軟件中。

  2. 兼容性UTF-8 與 ASCII 編碼向后兼容,這意味著所有 ASCII 字符在 UTF-8 中都有相同的編碼。這使得 UTF-8 在處理英文文本時與 ASCII 一樣高效。

  3. 多語言支持UTF-8 能夠表示 Unicode 標準中的任何字符,包括中文、日文、韓文、阿拉伯文、希伯來文等各種語言的字符。

  4. 避免亂碼:通過將控制臺的字符編碼設置為 UTF-8,你可以確保程序輸出的非 ASCII 字符能夠正確顯示,避免出現亂碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79178.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79178.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux——共享內存

目錄 一、共享內存概念 二、共享內存的一些函數 2.1 shmget 創建共享內存 2.2 shmat 訪問共享內存 2.3 shmdt 解除共享內存的映射 2.4 shnctl 刪除共享內存段 三、共享內存 3.1 創建測試進程 3.2 使用循環測試 ?編輯 3.3 共享內存寫入程序 3.4 帶有信號量的共享內…

數啟新疆,智領未來!2025新疆數字經濟發展戰略研討會在烏市啟幕

2025年4月20日&#xff0c;由新疆維吾爾自治區數字經濟聯合會主辦、中鈞科技有限公司承辦的"2025新疆數字經濟發展戰略研討會"將在烏魯木齊水磨溝區金正大廈三層會議中心隆重召開。 作為本年度新疆數字經濟領域規格最高的行業盛會&#xff0c;會議將匯聚自治區14個廳…

Nginx:輕量級高性能的Web服務器與反向代理服務器

目錄 一.引言 二.Nginx的核心特點 2.1高性能與高并發 2.2低資源消耗 2.3功能豐富 2.4高度擴展性 三.Nginx的應用場景 3.1靜態資源服務器 3.2反向代理服務器 3.3API網關 3.4Nginx的配置與使用 四.總結 一.引言 在互聯網高速發展的今天&#xff0c;Web服務器的性能與…

嵌入式Linux設備使用Go語言快速構建Web服務,實現設備參數配置管理方案探究

本文探討&#xff0c;利用Go語言及gin框架在嵌入式Linux設備上高效搭建Web服務器&#xff0c;以實現設備參數的網頁配置。通過gin框架&#xff0c;我們可以在幾分鐘內創建一個功能完善的管理界面&#xff0c;方便對諸如集中器&#xff0c;集線器等沒有界面的嵌入式設備的管理。…

KALI搭建log4j2靶場及漏洞復現全流程

這里使用了兩臺KALI虛擬機&#xff0c;一臺用于安裝靶場環境&#xff0c;一臺用于攻擊 一、Docker的安裝&#xff08;靶機&#xff09; 1、Linux內核版本查看 #安裝docker要求內核版本kerner>3.10 #為此&#xff0c;先檢查當前Linux系統的內核版本 uname -a 2、Linux apt…

學習筆記—C++—模板初階

目錄 模板初階 泛型編程 函數模板 模版概念 函數模版格式 模版的原理 函數模板的實例化 模版參數的匹配規則 類模板 模板初階 泛型編程 使用函數重載雖然可以實現&#xff0c;但是有一下幾個不好的地方&#xff1a; 1. 重載的函數僅僅是類型不同&#xff0c;代碼復…

Docker 中多個容器之間的通信

在 Docker 中&#xff0c;多個容器之間的通信可以通過以下幾種主要方式實現&#xff0c;具體選擇取決于網絡需求、隔離性及管理復雜度&#xff1a; 一、自定義 Bridge 網絡&#xff08;推薦&#xff09; 通過創建自定義的 Docker 網絡&#xff0c;容器可以加入同一網絡并通過容…

Day1-初次接觸UFS

經過導師初次介紹&#xff0c;了解工作以芯片測試為主&#xff0c;需堅持學習&#xff0c;小白大致需3-6月入門。整體學習應分為3大塊&#xff0c;UFS協議占40%&#xff08;3-4h&#xff09;,C技能占40%&#xff08;3-4h&#xff09;,工具或業務占20%&#xff08;1-2h&#xff…

【LeetCode 熱題100】二叉樹構造題精講:前序 + 中序建樹 有序數組構造 BST(力扣105 / 108)(Go語言版)

&#x1f331; 二叉樹構造題精講&#xff1a;前序 中序建樹 & 有序數組構造 BST 本文圍繞二叉樹的兩類構造類題目展開解析&#xff1a; 從前序與中序遍歷序列構造二叉樹 將有序數組轉換為二叉搜索樹 我們將從「已知遍歷構造樹」和「平衡構造 BST」兩個角度&#xff0c;拆…

JMeter重要的是什么

重要特性 支持多種協議&#xff1a; JMeter支持對多種協議進行性能測試&#xff0c;包括HTTP、HTTPS、FTP、JDBC&#xff08;數據庫&#xff09;、LDAP、JMS、SOAP、REST等。這使得它能夠適應各種不同的測試場景。強大的負載模擬能力&#xff1a; JMeter能夠模擬大量的虛擬用戶…

一文讀懂WPF系列之MVVM

WPF MVVM 什么是MVVMWPF為何使用MVVM機制WPFMVVM 的實現手段 INotifyPropertyChanged?數據綁定的源端通知??原理 PropertyChanged事件雙向綁定的完整條件常見疑惑問題 什么是MVVM 翻譯全稱就是 model-view-viewmodel 3部分內容 以wpf的概念角度來解釋就是 數據庫數據源模型…

OCR API識別對比

OCR 識別DEMO OCR識別 demo 文檔由來 最開始想使用百度開源的 paddlepaddle大模型 研究了幾天&#xff0c;發現表格識別會跨行&#xff0c;手寫識別的也不很準確。最終還是得使用現成提供的api。。 文檔說明 三個體驗下來 騰訊的識別度比較高&#xff0c;不論是手寫還是識別表…

嵌入式MCU常用模塊

日后填坑。 無線通信模塊 2.4G 基本介紹 以NRF24L01為例。 NRF24L01是一款2.4GHz的無線收發模塊&#xff0c;支持SPI通信協議&#xff0c;具有低功耗、高數據速率&#xff08;250kbps-2Mbps&#xff09;和多設備通信能力。 它可以同時與最多6個其他模塊通信&#xff0c;適合…

記一次InternVL3- 2B 8B的部署測驗日志

測試效果&#xff1a; 問題和耗時如圖 5、資源占用 不釋放資源會一直漲顯存。總體還算滿意&#xff0c;我試了好多個圖理解大模型&#xff0c;就屬它牛一點 附圖一張 補充&#xff0c;測試InternVL3-2B的結果 1、模型下載魔搭社區 2、運行環境&#xff1a; 1、硬件 RTX 30…

Java版本對應關系表

Java版本對應關系表 以下Java主要版本&#xff08;Major Version&#xff09;與公開大版本號的對應關系 公開大版本名稱Major 版本號內部版本號格式示例&#xff08;java -version輸出&#xff09;Java 8 (1.8)52 (0x34)1.8.0_XXX1.8.0_301Java 953 (0x35)9.0.X9.0.4Java 105…

2025最新版flink2.0.0安裝教程(保姆級)

Flink支持多種安裝模式。 local&#xff08;本地&#xff09;——本地模式 standalone——獨立模式&#xff0c;Flink自帶集群&#xff0c;開發測試環境使用 standaloneHA—獨立集群高可用模式&#xff0c;Flink自帶集群&#xff0c;開發測試環境使用 yarn——計算資源統一…

android11 配置默認電池優化白名單

目錄 1.介紹 2.讀取配置文件 3.默認配置一個白名單列表 1.介紹 在 Android 11 中,DeviceIdleController 是負責控制設備進入 Doze 模式(閑置模式) 的核心系統服務,其內部方法 readConfigFileLocked() 負責從配置文件中讀取 Doze 模式的行為參數,包括 idle 階段的時間間…

java中的Future的設計模式 手寫一個簡易的Future

案例 例如&#xff1a;今天是小妹的生日&#xff0c;需要一個蛋糕有點儀式感&#xff0c;于是去蛋糕店預定&#xff0c;預定完之后&#xff0c;店老板說蛋糕做好了&#xff0c;到時電話通知你&#xff0c;不可能在這傻傻的等著吧&#xff0c;還有其他事情要做啊&#xff0c;于…

【Redis】Redis C++使用

一、Redis的自定義網絡協議 1.1 為什么可以編寫出一個自定義的Redis客戶端 為什么我們可以編寫出一個自定義的Redis客戶端&#xff1f;因為Redis公開了自己的自定義協議。而對于一些其他軟件的客戶端&#xff0c;我們無法編寫出一個自定義的Redis客戶端&#xff0c;因為他們沒…

【軟考系統架構設計師】軟件工程知識點

1、 軟件開發生命周期 軟件定義時期&#xff1a;包括可行性研究和詳細需求分析過程&#xff0c;任務是確定軟件開發工程必須完成的總目標&#xff0c;具體分為問題定義、可行性研究、需求分析等 軟件開發時期&#xff1a;軟件的設計與實現&#xff0c;分為概要設計、詳細設計、…