# Intèrpret d'ordres en Windows

L'intèrpret d'ordres en Windows, més conegut amb el nom CMD, Consola del sistema de Windows o Indicador d'ordres, és un shell de Windows NT que permet que els usuaris puguin enviar ordres al sistema escrivint comandaments. Desenvolupat inicialment per Therese Stowell, Windows CE 2.11 va ser la primera versió de Windows CE que la duia incorporada. Actualment el CMD ha estat reemplaçat per PowerShell, una eina creada com la versió moderna i més potent amb característiques com el fet que està orientada a objectes i que és multiplataforma.
Per obrir el CMD s'ha de presionar la tecla Windows (vegi-ho a la dreta) juntament presionant la tecla R. S'obrirà a baix a l'esquerra una petita finestra. Allà escrigui: "CMD" (sense les cometes). Això obrirà una pantalla amb fons negre i lletres blanques, on es podran començar a introduir les ordres que es desitgin.

## Algunes de les ordres

* echo <missatge>
** Això enviarà un missatge a la consola CMD. Es sol utilitzar a l'hora de fer programes per comunicar-se amb l'usuari que esta usant el programa
* echo on/off
** Això activarà o desactivarà que es vegin les ordres executades. A l'hora de fer programes sol deshabilitar-se (echo off) per evitar spam a la consola.
* cls
** Això netejarà la pantalla del CMD deixant-la totalment neta. A l'hora de fer programes es sol utilitzar quan es canvia de pantalla, d'acció per tal d'eliminar els missatges anteriors
* title <títol que desitgi>
** Això canviarà el títol de la finestra del CMD (Situat a la part superior de la consola)
* color <Color>
** Aquesta ordre permetra canviar el color de les lletres/del fons de la pantalla del cmd. També es fa servir molt en programes perquè siguin més atractius de cara a l'usuari que l'utilitzarà. Exemple: color a
** Quins colors hi ha?
*** Aquesta és la llista de colors. Aquests colors són els mateixos codis que els atributs de colors de la BIOS
**** 0 = Negre
**** 1 = Blau fosc
**** 2 = Verd
**** 3 = Cian
**** 4 = Vermell
**** 5 = Lila
**** 6 = Taronja
**** 7 = Gris clar
**** 8 = Gris
**** 9 = Blau
**** a = Verd llima
**** b = Blau claret
**** c = Vermell clar
**** d = Fucsia
**** e = Groc
**** f = Blanc
** Per posar un color de fons, només cal posar color <Color de fons><Color de les lletres>. Exemple: color 1a tree
** Obrirà un arbre de tots els arxius del sistema.
*** Què és un arbre del d'arxius del sistema?
**** Bé, un arbre dels arxius del sistema és una ordre del CMD, que li permetrà veure tots els arxius que hi ha al sistema (Excepte els que tinguin l'atribut +h, és a dir, que estiguin ocults)
* cd <Directori>
** El permetrà entrar en un directori del seu ordinador (Exemple: cd Desktop). Si no té el eco desactivat, podrà veure que s'ha integrat la paraula desktop a la dreta del seu usuari.
* start <Direcció>
** El permetrà obrir una carpeta/subcarpeta a la direcció escrita. Exemple: start C:\Users\%username%\Desktop\exemple Això obrirà una carpeta anomenada exemple.
*** Què és una direcció?
**** Una direcció és una guia per l'ordinador, que li indica on esta aquell arxiu al qual vostè vol utilitzar. Un exemple de direcció seria: C:\Users\%username%\Desktop\carpetaviquipedia. En aquest cas, li senyalem al nostre ordinador, que volem que executi la nostra ordre a una carpeta anomenada carpetaviquipedia situada al nostre escriptori (Desktop en anglès).
* del [Direcció] o erase [Direcció]
** Aquesta ordre és molt perillosa així que assegureu-vos d'utilitzar-la amb molta cautela. Aquesta ordre ordena al CMD que s'elimini el contingut de la carpeta o els fitxers escrits a la direcció. A diferència de l'explorador de fitxers, no es pot revertir l'eliminació dels fitxers.
* time
** Mostra l'hora actual del sistema i permet canviar-la si un ho desitja
* date
** Mostra la data actual del sistema i permet canviar-la si un ho desitja
* shutdown <Arguments>
** Programa un apagat de l'ordinador al temps definit.
*** Quins arguments hi ha?
**** Arguments de diferents apagats:
***** Argument d'apagat: shutdown -s
***** Argument d'hivernació: shutdown -h (No es pot definir un temps per hivernar. L'ordinador no acceptarà una compte enrere. S'hivernarà just després haver executat l'ordre)
***** Argument de reiniciar: shutdown -r
***** Argument de tancar sessió: shutdown -l
**** Argument de temps:
***** Per definir el temps d'apagat s'ha d'escriure l'argument -t i just després, acompanyant-lo (amb un espai), escrigui el temps en segons (Exemple: shutdown -s -t 10. Aquesta ordre apagarà l'ordinador en 10 segons)
**** Arguments de comentaris:
***** Per definir un missatge d'apagat, haurà d'escriure l'argument -c "<missatge>". Exemple: shutdown -s -t 10 -c "Això és un exemple" Aquesta ordre apagarà l'ordinador en 10 segons amb el missatge "Això és un exemple"
**** Arguments de cancel·lar l'apagada:
***** Per cancel·lar l'apagada s'ha d'usar l'argument -a (Exemple: shutdown -a). Després d'executar l'ordre us apareixerà un missatge indicant-vos que s'ha cancel·lat el tancament de la sessió.
* set
** Defineix un valor a una variable personalitzada.
* pause
** Atura el programa fins que es pressioni qualsevol tecla. Apareixerà un missatge per defecte depenent de l'idioma del ordinador.
*** Extra:
**** Per posar un missatge personalitzat calen 2 ordres, però és ben fàcil, no cal preocupar-se de res. Vostè ha d'introduir un echo abans de posar el pause. Un cop posar l'echo, posarem pause>nul enlloc de pause. El >nul afegit anul·larà el missatge per defecte, i just abans s'executarà el nostre echo. Exemple: echo Presioni qualsevol tecla per continuar pause>nul El missatge "Prém qualsevol tecla per continuar" s'executarà just abans del pause>nul, mostrant el missatge personalitzat.
* rename <Direcció> <Nou nom>
** Canvia el nom d'un arxiu/carpeta/directori. Exemple: rename C:\Users\%username%\Desktop\exemple Viquipèdia Això canviaria el nom de l'arxiu exemple al nom de Viquipèdia
* systeminfo
** Et mostra informació sobre el sistema. Sol trigar una mica a carregar.
*** IMPORTANT: Aquesta ordre conté informació privada per l'ordinador. Si vostè dona aquesta informació a gent de poca confiança, un pirata informàtic podria piratejar el seu ordinador
* ipconfig
** Mostra les direccions IP de l'ordinador. La majoria de gent ho sol utilitzar per mirar la IPv4 o la IPv6.
*** IMPORTANT: Aquesta ordre conté informació privada per l'ordinador. Si vostè dona aquesta informació a gent de poca confiança, un pirata informàtic podria piratejar el seu ordinador
* prompt <Nou nom>
** Canvia el nom del la part esquerra del CMD. Només és visible si l'opció echo esta activada (echo on). Exemple: prompt Viquipèdia
* exit
** Tanca el programa CMD
* cmd
** Mostra el missatge d'inici del CMD de nou i inicia una nova instància
* start
** Obre un nou programa CMD
* attrib <Direcció> <Atributs>
** Aquesta ordre és bastant avançada, pel que és millor utilitzarla amb cura. Aquesta ordre afegeix atributs a la carpeta/arxiu/directori triat.
*** Quins són els atributs aplicats?
**** Hi ha 11 atributs. En aquest article només se'n esmenten tres perquè els altres 8 son més complexos d'explicar. Per aprendre'ls per tu sol només fa falta que introdueixis al teu cercador les paraules: "Attribute A" i "Atribute S".
**** Per afegir un atribut, s'ha d'utilitzar l'expressió attrib +<Lletra> <arxiu>. Per treure'l, s'ha de canviar el símbol + per el símbol - (attrib -<Lletra> <arxiu>)
***** Atribut R: Si aquest atribut és afegit, l'arxiu seleccionat es transformarà en un arxiu "Read-only" (només de lectura), és a dir, que només es podrà visualitzar i no es podrà editar.
****** Com canvio aquest atribut?
******* Exemple: attrib C:\Users\%username%\Desktop\exemple +R Aquesta ordre afegirà l'atribut R a l'arxiu seleccionat (En aquest cas, a l'arxiu/directori/carpeta exemple). Per tant, per afegir un atribut caldrà posar un + davant d'aquest. Per treure'l, simplement es canvia el símbol + per un -
***** Atribut H: Si aquest atribut és afegit, l'arxiu seleccionat es transformarà en ocult, fent així que no pugui ser visible (no es podrà veure ni amb les ordres tree ni dir) Aquest atribut sol estar en molts programes per amagar continguts molestos i/o per fer programes de carpetes secretes per documents privats.
****** Com canvio aquest atribut?
******* Exemple: attrib C:\Users\%username%\Desktop\exemple +H Aquesta ordre eliminarà l'atribut H a l'arxiu seleccionat (En aquest cas, a l'arxiu/directori/carpeta exemple). Per tant, per eliminar un atribut caldrà posar un - davant d'aquest
***** Atribut S: Aquest atribut fa que un arxiu sigui establert com a sistema. Els arxius més crucials pel funcionament de l'ordinador tenen sovint aquest atribut juntament amb l'atribut H per evitar que siguin modificats o esborrats accidentalment.
****** Com hem vist anteriorment, s'ha de utilitzar un símbol + per afegir l'atribut i un símbol - per eliminar-lo.

## Variables

Les variables són unes paraules que s'escriuen entre "%" (percentatges), i que tenen un valor numèric o qualitatiu. Algunes de les variables ja estàn establertes des de bon inici (anomenades variables d'entorn, però l'usuari en pot crear de personalitzades.

### Variables establertes per defecte

* %__appdir__% » Mostra en quin directori està situat el CMD, acabant amb una barra inversa. (No documentada i només de lectura)
* %__cd__% » Sinònim de la variable %cd%, però acabant la ruta amb una barra inversa. (No documentada i només de lectura)
* %=C:% » Mostra la ruta actual al disc local C:
* %=exitcode% » Mostra l'últim codi de retorn en format hexadecimal (No documentada)
* %=exitcodeascii% » Mostra el codi ASCII de l'últim codi de retorn (No documentada)
* %allusersprofile% » Mostra la direcció on s'emmagatzemen tots els usuaris.
* %appdata% » Una de les variables més utilitzades. Mostra la carpeta Roaming, un subdirectori de la carpeta AppData, situada normalment a %userprofile%
* %cd% » Mostra el directori actual
* %commonprogramfiles% » Mostra la direcció on s'emmagatzemen les dades dels programes més comuns.
* %cmdcmdline% » Mostra la línia d'ordres amb la qual el CMD o el script s'ha executat.
* %cmdextversion% » Mostra la versió del cmd actual.
* %computername% » Mostra el nom actual de l'ordinador.
* %comspec% » Mostra on està situat el programa CMD (Per defecte és la carpeta System32).
* %date% » Mostra el dia actual.
* %errorlevel% » Mostra el número de l'últim codi de retorn al CMD.
* %firmware_type% » Mostra el tipus de firmware. (No documentada i només de lectura)
* %homedrive% » Mostra el nom de la unitat en la qual estàs actualment.
* %homepath% » Mostra a quin usuari està actualment.
* %logonserver% » Mostra el seu servidor amb el qual ha iniciat sessió (Exemple: MicrosoftAccount).
* %localappdata% » Mostra la direcció de la carpeta Local dins d'AppData. S'hi troben dades dels programes del usuari actual.
* %number_of_processors% » Mostra el nombre de processadors que disposa el seu ordinador.
* %os% » Mostra el nostre sistema operatiu.
* %path% » Mostra una llista separada per punt i coma (;), que mostra tots els directoris amb arxius executables.
* %pathext% » Mostra una llista separada per punt i coma (;) que mostra totes les extensions que es classifiquen com a arxius executables.
* %processor_architecture% » Mostra l'arquitectura del processador del seu ordinador.
* %processor_identifier% » Mostra una descripció del processador del seu ordinador.
* %processor_level% » Mostra el número de model del seu processador.
* %processor_revision% » Mostra el número de revisió del seu processador.
* %programdata% » Mostra on els programes emmagatzemen dades. Normalment la direcció sol ser C:\ProgramData.
* %programfiles% » Mostra on els programes estan instal·lats. Normalment la direcció sol ser C:\Program Files.
* %programfiles(x86)% » Mostra on els programes de 32 bits estan instal·lats. Generalment la direcció és C:\Program Files (x86) (Només en sistemes de 64 bits).
* %psmodulepath% » Mostra la direcció als mòduls de PowerShell.
* %public% » Mostra la direcció on s'emmagatzema la informació publica entre usuaris (Exemple: Skype).
* %random% » Mostra un nombre aleatori entre el 0 i el 32767.
* %systemdrive% » Mostra el nom de la unitat del seu ordinador. Generalment és C:.
* %systemroot% » Mostra la direcció de la carpeta d'administració de Windows. Sol ser C:\WINDOWS.
* %temp% o %tmp% » Mostra la direcció on s'emmagatzemen programes temporals, habitualment en la carpeta Local.
* %time% » Mostra l'hora actual del sistema (Hores, Minuts, Segons i Centèsimes)
* %username% » Mostra el nom de l'usuari que vostè esta utilitzant en aquest precís moment. Molt utilitzat en programes per donar la benvinguda (Exemple: Hola %username%! Es mostrarà: Hola Viquipèdia!)
* %userprofile% » Mostra la direcció on estàn situats els arxius de l'usuari actual. Normalment sol ser C:\Users\NomDelSeuUsuari.
* %windir% » Mostra la direcció de la carpeta del sistema operatiu. Normalment sol ser C:\Windows. Aquesta variable sol ser un sinònim a la variable %systemroot%

### Com crear variables personalitzades

Per crear una variable personalitzada, primer de tot se li ha d'establir un valor amb el comandament set. El seu ús és el següent:
set <variable>=<valor>
Per exemple, si volem crear la variable Viquipedia amb el valor L'enciclopèdia lliure, utilitzariem l'expressió set Viquipedia=L'enciclopèdia lliure.
Nota: el comandament set no diferencia de majúscules i minúscules, per tant definir la variable Viquipedia seria el mateix que definir la variable VIQUIPEDIA
Si es vol accedir a la variable més endavant, s'ha d'utilitzar l'expressió %variable% (en aquest cas seria %Viquipedia%) i d'aquesta manera es substitueix l'expressió pel valor de la variable. No hi ha cap límit en el nombre de variables que es poden establir.
Per eliminar una variable, simplement s'ha d'escriure set <variable>=, d'aquesta manera s'esborra tant el contingut de la variable com la pròpia variable (En aquest cas, seria set Viquipedia=)

## Referències

* ↑ Pascal, Zachary G. Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft (en anglès). The Free Press], 1994. ISBN 0-02-935671-7.
* ↑ Douglas McConnaughey Boling. Programming Microsoft Windows CE. 2a edició. Microsoft Press, 2001. ISBN 978-0735614437.
* ↑ «Set - Environment Variable - Windows CMD - SS64.com». [Consulta: 26 agost 2022].