Вопрос или проблема
Я пытаюсь изменить свою рабочую директорию.
В командной строке мой ввод был:
> cd F:
:: Командная строка вернула:
> F:\
Затем появилась другая строка, возвращающая мою рабочую директорию обратно в:
C:\Users\caden
В конечном итоге мне нужно выполнить следующую команду, используя ffmpeg, но мне нужно либо изменить текущую/рабочую директорию, либо, возможно, объединить ‘cd F:’ с моей командой, я предполагаю…
Команда FFmpeg
, которую я использую для обрезки видео:
ffmpeg.exe -i "F:\output" -ss 00:00:01 -t 10:00:00 -c:v copy -c:a copy GENTLEWAVESFINAL.mp4
Я пытаюсь переместить свою рабочую/текущую директорию, но безуспешно. Я предполагаю, что вопросы, на которые мне нужно получить ответы:
-
Изменяет ли команда:
cd
текущую директорию до тех пор, пока она снова не будет изменена, или нужно использовать ее для каждой команды, вводимой в командной строке? -
Если да, то это значит, что мне нужно будет использовать
cd F:\
+другой код
, как должна выглядеть объединенная команда, используя приведенные выше команды?
Обычно изменение не является временным. Оно является постоянным до следующего cd
/pushd
/popd
.
F:
меняет текущий диск на F:
cd F:\
изменяет текущий путь на диске F:
на корень (\
), не изменяет текущий диск
cd \folder
изменяет текущий путь диска на папку folder
на верхушке иерархии
cd folder
изменяет текущий путь диска на подпапку folder
в текущей папке
cd /d C:\Windows
изменяет текущий диск и папку на C:
и \Windows
соответственно
cd ..
изменяет текущую папку на уровень вверх
cd \
изменяет текущую папку на корень (\
) на текущем диске
Отвечая на вопросы:
- Она используется один раз для одной папки, но команда
pushd
илиpopd
может изменить эту текущую папку. - Смотрите выше для моих объяснений.
@echo off
cd "D:\Ваш_Текущий_E_Диск_РабочаяДиректория"
cd "E:\Ваш_Текущий_E_Диск_РабочаяДиректория"
cd "F:\Ваш_Текущий_F_Диск_РабочаяДиректория"
CD /D "%Temp%\Ваш_Текущий_C_Диск_РабочаяДиректория"
echo/ "%=D:%" == "F:\Ваш_Текущий_D_Диск_РабочаяДиректория"
echo/ "%=E:%" == "F:\Ваш_Текущий_E_Диск_РабочаяДиректория"
echo/ "%=F:%" == "F:\Ваш_Текущий_F_Диск_РабочаяДиректория"
echo/ "%__CD__%" == "C:\Users\ecker\AppData\Local\Temp\Ваш_Текущий_C_Диск_РабочаяДиректория\"
echo/ "%CD%" == "C:\Users\ecker\AppData\Local\Temp\Ваш_Текущий_C_Диск_РабочаяДиректория"
ffmpeg.exe -i "%=F:%\output.mp4" -ss 00:00:01 -t 10:00:00 -c:v copy -c:a copy "%=F:%\GENTLEWAVESFINAL.mp4"
Я понимаю, что, несмотря на свои ограниченные знания английского, стоит попробовать вариант %CD%
для отслеживания текущих директорий на разных дисках.
В статье объясняется, что такие переменные, как =C:
являются остатками от MS-DOS, которые помогают поддерживать текущую директорию для каждого диска, не меняя диски и/или последующие интересующие папки, сохраняя все просто.
Дополнительные ресурсы:
Ответ или решение
Является ли команда cd
временной?
Проблема, которую вы описали, связана с изменением текущего рабочего каталога в командной строке Windows, особенно при попытке смены диска на F:
. Давайте подробнее рассмотрим, как работает команда cd
, и ответим на ваши вопросы.
1. Временность команды cd
Команда cd
(change directory) изменяет текущий рабочий каталог в рамках одноразовой сессии командного терминала. Это означает, что текущий каталог остается измененным до тех пор, пока не будет использована другая команда cd
или не произойдет переключение на другой диск. Так, ваше изменение текущего каталога будет сохранено до тех пор, пока вы не выполните команду cd
снова, чтобы изменить каталог, или не закроете окно командной строки.
Когда вы пытаетесь переключиться на диск F:
с командой просто cd F:
, это не изменяет текущий диск. Чтобы переключиться на другой диск и при этом установить текущий каталог, вам нужно использовать команду cd
с флагом /D
, например cd /D F:\
. Эта команда меняет как текущий диск, так и каталог.
2. Объединение команды cd
с вашей командой ffmpeg
Если вы хотите выполнить команды последовательно, например, сначала изменить диск на F:
и затем запустить команду ffmpeg
, вы можете использовать следующую конструкцию:
cd /D F:\
ffmpeg.exe -i "F:\output" -ss 00:00:01 -t 10:00:00 -c:v copy -c:a copy "GENTLEWAVESFINAL.mp4"
Эта конструкция сначала переходит на диск F:
и в корневой каталог, затем выполняет команду ffmpeg
. Обратите внимание, что важно указать полный путь к файлу и целевому каталогу, чтобы избежать ошибок.
Дополнительные советы
- Если вы используете множество дисков и хотите избежать постоянного ввода команд
cd
, вы можете создать пакетный файл (batch file), который автоматизирует этот процесс. - Для удобства вы можете проверить текущее состояние каталога, используя команду
echo %CD%
, которая покажет текущий рабочий каталог.
Заключение
Ответ на ваш вопрос состоит в том, что команда cd
изменяет текущий каталог в рамках текущего сеанса, и это изменение останется до тех пор, пока не будет выполнена другая команда cd
или не произойдет переключение на другой диск. При использовании команд в Windows Command Prompt всегда помните о необходимых аргументах и синтаксисе, чтобы избежать ошибок при выполнении задач.