J'ai le dossier run
dans le dossier system32
. Lorsque je lance cmd
à partir de Total Commander, j'ouvre une fenêtre d'invite de commande avec C:\Users\admin
en tant que répertoire actuel et que vous voulez aller dans ce dossier, le message d'erreur suivant est affiché:
Le système ne peut pas trouver le chemin spécifié.
Lorsque j'ouvre cmd
directement dans le dossier run
, cela fonctionne parfaitement. Pourquoi?
La fenêtre d'invite de commande lors de l'ouverture dans C:\Windows\System32\run
:
C:\Windows\System32\run>cd..
C:\Windows\System32>cd run
C:\Windows\System32\run>
La fenêtre d'invite de commande pour exécuter simplement cmd
:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Všetky práva vyhradené.
C:\Users\admin>cd..
C:\Users>cd..
C:\>cd windows
C:\Windows>cd system32
C:\Windows\System32>cd run
Systém nemôže nájst’ zadanú cestu.
Il y a pas seulement 1 %SystemRoot%\System32
Sous Windows x64. Il existe 2 de tels répertoires.
Le vrai répertoire %SystemRoot%\System32
Est destiné aux applications 64 bits. Ce répertoire contient un cmd.exe
64 bits.
Mais il existe aussi %SystemRoot%\SysWOW64
Pour les applications 32 bits. Ce répertoire est utilisé si une application 32 bits accède à %SystemRoot%\System32
. Il contient un cmd.exe
32 bits.
Les applications 32 bits peuvent accéder à %SystemRoot%\System32
Pour les applications 64 bits en utilisant %SystemRoot%\Sysnative
Dans chemin.
Pour plus de détails, voir la documentation de Microsoft sur Redirecteur de système de fichiers .
Je pense donc que vous avez créé le sous-répertoire run
dans %SystemRoot%\System32
Pour les applications 64 bits et que vous exécutez cmd
32 bits pour lequel ce répertoire n'existe pas car il n'y a pas de sous-répertoire run
dans %SystemRoot%\SysWOW64
, qui est %SystemRoot%\System32
pour 32 bits cmd.exe
.
Ou vous avez créé le sous-répertoire run
dans %SystemRoot%\System32
Pour les applications 32 bits et exécutez cmd
64 bits pour lequel ce répertoire n'existe pas car il n'y a pas de sous-répertoire run
dans %SystemRoot%\System32
car ce sous-répertoire n'existe que dans %SystemRoot%\SysWOW64
.
Vous pouvez utiliser ce qui suit en haut de votre fichier de commandes dans le cas du sous-répertoire run
est dans %SystemRoot%\System32
Pour les applications 64 bits:
@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%"=="" (
if exist %SystemRoot%\Sysnative\* set "SystemPath=%SystemRoot%\Sysnative"
)
Ensuite, vous devez appeler chaque application de la console du répertoire System32\run
Avec %SystemPath%
Dans votre fichier de commandes, par exemple %SystemPath%\run\YourApp.exe
.
Comment ça marche?
Sous Windows x86, il n'y a pas de variable d'environnement ProgramFiles (x86) et, par conséquent, il n'y a vraiment que 1 %SystemRoot%\System32
Tel que défini en haut.
Sous Windows x64, il existe la variable d’environnement ProgramFiles (x86) avec une valeur. Sous Windows x64, il est en outre vérifié s'il existe des fichiers dans %SystemRoot%\Sysnative
. Dans ce cas, le fichier de commandes est exécuté avec cmd.exe
32 bits et uniquement dans ce cas, %SystemRoot%\Sysnative
Doit être utilisé. Sinon, %SystemRoot%\System32
Peut également être utilisé sous Windows x64, car lorsque le fichier de traitement par lots est démarré avec un fichier 64 bits cmd.exe
, Il s'agit du répertoire contenant les applications de la console 64 bits (et votre sous-répertoire run
).
Remarque: %SystemRoot%\Sysnative
N'est pas un répertoire! Il n'est pas possible de cd
à %SystemRoot%\Sysnative
Ou d'utiliser if exist %SystemRoot%\Sysnative
Vous avez juste besoin de:
Étape 1: Allez dans le répertoire personnel de C:\en tapant cd .. (2 fois)
Étape 2: Il apparaît maintenant C:\>
Étape 3: tapez dir Windows\System32\run
C'est tout, il affiche les fichiers complets et les détails du dossier dans le dossier cible.
Détails: j'ai utilisé Windows\System32\com
dossier par exemple, vous devez taper votre propre nom de dossier, etc. Windows\System32\run