2009-10-26 3 views

Répondre

1

La réponse courte est non. Le système d'exploitation crée une copie de "l'environnement" pour chaque exécutable. Cela inclut des choses comme le répertoire de travail actuel, une liste de variables d'environnement comme "PATH", etc. Si votre exécutable modifie son répertoire de travail actuel, cette modification n'affectera que l'environnement du programme pendant son exécution mais n'affectera pas le processus parent ça a commencé.

Puisque chaque processus a son propre "répertoire courant", que voulez-vous dire par "changer le répertoire courant"? Le répertoire actuel pour quoi?

0

Eh bien, il y a bien sûr l'appel de l'API SetCurrentDirectory Win32. Cependant, cela ne change que le répertoire de travail pour le processus appelant. Puisque chaque fois que vous exécutez un exécutable, le système d'exploitation démarre un nouveau processus, il n'y aura pas de bon moyen de le faire.

Il y avait un SO question environ obtenir cette information. Peut-être que quelque chose vous aidera. La réponse acceptée semble pouvoir vous donner un accès direct, mais elle est aussi très dangereuse. Si vous bluescreen votre système ou déclenché un China Sindrome ou quelque chose, c'était votre faute, pas le mien. :-)

0

La commande 4DOS étendue de TakeCommand pour Windows vous permet de le faire. Mais en base .bat? Je m'attendrais à ce que vous deviez écrire un exe de ligne de commande win32 qui vous a fourni ce que vous voulez? Il doit y avoir d'autres remplacements de shell que vous pouvez regarder - .bat et le shell de ligne de commande Windows sont incroyablement endommagés/faibles.

Questions connexes