Come chiudere una particolare cartella aperta usando cmd o file batch?


1

Posso aprire una cartella particolare usando questo comando:

start "" "c:\foldername"

Allo stesso modo, come posso chiudere la stessa cartella usando il Prompt dei comandi o il batch?


ma sto creando un piccolo file batch per i miei visitatori. Quindi, non vi è alcuna garanzia che tutto avrà installato AutoHotKey. Quindi, comprendi la mia situazione e forniscimi una soluzione.
Filippo,

3
Che dire del VBS one liner: set shell = createobject("wscript.shell") : if shell.appactivate("foldername") then shell.sendkeys "%{F4}" potresti farne eco da un file batch ed eseguirlo se deve essere un file batch.
HelpingHand,

Fantastico Funziona bene quando usi quel vbs in batch usando l'eco. Grazie :) @Helping Hand
Philip

Risposte:


2

Per impostazione predefinita, Explorer non genera processi separati, quindi non è possibile uccidere un processo senza uccidere tutte le finestre, la barra delle applicazioni e tutto ciò che fa Explorer.

Tuttavia, puoi semplicemente abilitare l'apertura delle finestre di Explorer nel loro processo e improvvisamente puoi interrompere una finestra dalla riga di comando.

Come cambiare explorer per aprire una finestra nel suo processo?
Arrivare lì è diverso per ogni versione di Windows e poiché hai dimenticato di menzionare quale versione di Windows stai utilizzando, presumo Windows 10.

In qualsiasi finestra di Explorer, apri la scheda Visualizza, quindi a destra, premi opzioni.

Nelle opzioni di Explorer, vai alla scheda Visualizza e, in Opzioni avanzate, cerca un'impostazione che dice: Launch folder windows in a separate process

Questa opzione può anche essere modificata dal registro, ma non conosco la sua posizione esatta.

Se vuoi essere in grado di uccidere una finestra dal suo percorso, devi anche modificare le seguenti impostazioni: abilita Display the full path in the title bar

Questa seconda impostazione è necessaria perché dobbiamo esprimere quale particolare finestra vogliamo eliminare dal suo titolo. Per impostazione predefinita mostra solo il nome della cartella corrente.

Quindi se hai un C: \ Programmi e un D: \ Programmi, mostrerà i Programmi per entrambi, e se hai entrambe le cartelle aperte, 1 comando ucciderà entrambe le finestre.

Detto questo, una volta abilitato questo, puoi usare taskkillper chiudere quella finestra.

Per sapere quale tipo di comando dovresti inserire, puoi prima usare tasklistla finestra. Il bello di tasklist è che usa principalmente la stessa sintassi di taskkill. Almeno per quello che vogliamo, è lo stesso.

Trovare la finestra
Aprire prima la finestra desiderata, quindi aprire un prompt dei comandi. Adesso digita

tasklist /V /FI "IMAGENAME eq explorer.exe"

Questo ti dirà esattamente cosa puoi uccidere.

Nel tuo caso vorrai utilizzare quanto segue:

tasklist /V /FI "WINDOWTITLE eq C:\Program Files"

se vuoi uccidere i Programmi.

Nota: se hai più finestre aperte, il nome di Windows viene mostrato solo dell'ULTIMA finestra attiva.

Se vuoi trovare una finestra che abbia un percorso aperto con C: \ in Explorer, puoi usare il seguente comando:

tasklist /V /FI "IMAGENAME eq explorer.exe" /FI "WINDOWTITLE eq C*"

Nota, io uso un * qui. la lista delle attività può usare un carattere jolly, ma solo DOPO la ricerca. Quindi, nel caso precedente, il titolo di Windows deve ancora iniziare con una C, ma qualsiasi altra cosa è facoltativa.

Ora, una volta scoperto qual è il comando che si desidera utilizzare per eliminare la finestra, sostituire l'elenco delle attività con taskkill e rimuovere il parametro / V. Il / V viene utilizzato solo per mostrare più informazioni, come il titolo di Windows.

Quindi, per uccidere l'ultima finestra di Explorer aperta che inizia con una C, puoi usare:

taskkill /FI "IMAGENAME eq explorer.exe" /FI "WINDOWTITLE eq C*"

Risposta eccellente e approfondita. In particolare, non avevo suggerito l'OP kill Explorer sapendo che avrebbe ucciso più della finestra desiderata. Dimenticato totalmente di poter aprire in processi separati.
Twisty Impersonator,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.