Изменить текущий каталог в командной среде Windows - PullRequest
0 голосов
/ 26 октября 2009

Кажется, это не так просто, я не хочу создавать летучую мышь, чтобы вызвать это.

Есть ли способ создать Windows EXE, который может изменить текущий каталог при выходе.

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Короткий ответ - нет. Операционная система создает копию «среды» для каждого исполняемого файла. Это включает в себя такие вещи, как текущий рабочий каталог, список переменных среды, таких как «PATH» и т. Д. Если ваш исполняемый файл меняет свой текущий рабочий каталог, это изменение повлияет только на собственную среду программы во время ее работы, но не повлияет на родительский процесс это началось.

Поскольку у каждого процесса есть свой «текущий каталог», что вы подразумеваете под «изменить текущий каталог»? Текущий каталог для чего?

0 голосов
/ 26 октября 2009

Расширенная командная оболочка TakeDommand 4DOS для Windows позволяет вам сделать это. Но в основном .bat? Я ожидаю, что вам придется написать win32 exe для командной строки, которая предоставит вам то, что вы хотите? Должны быть и другие замены оболочки - .bat и оболочка командной строки Windows невероятно повреждены / слабые.

0 голосов
/ 26 октября 2009

Ну, конечно, есть вызов API SetCurrentDirectory Win32. Однако это только меняет рабочий каталог для вызывающего процесса. Поскольку каждый раз, когда вы запускаете исполняемый файл, ОС запускает для него новый процесс, хорошего способа сделать это не будет.

Был ТАК вопрос о получении этой информации. Возможно, что-то там поможет вам. Принятый ответ выглядит так, как будто он может дать вам прямой доступ к нему, но он также выглядит действительно опасным. Если вы синевали свою систему или запускали «Синдром Китая» или что-то еще, это была ваша вина, а не моя. : -)

...