Я пытаюсь выполнить последовательность команд в пакетном файле. Мне нужно выполнить процесс в пакетных файлах .tiff, затем переместить выходные файлы .tiff в другое место и выполнить другой процесс в исходных файлах .tiff. Код, который я пытаюсь сделать ниже;Я пытаюсь выполнить несколько команд в пакетном файле. Мне нужно выполнить процесс в пакетных файлах .tiff.
for %f in (*.tiff) do gdaldem_slope_batch.bat %~nf & move /-y "C:\Users\wmiller\Desktop\temp\*slope*.tiff" "C:\Users\wmiller\Desktop\trial" & for %f in (*.tiff) do gdaldem_hillshade_batch.bat %~nf & move /-y "C:\Users\wmiller\Desktop\temp\*hillshade*.tiff" "C:\Users\wmiller\Desktop\trial"
Моя проблема заключается в том, что он делает первую команду на первый файл и перемещает его в новое место тогда проходит через вторую команду на всех файлов, в свою очередь, и перемещает их на новое место. Затем он выполняет первую команду во втором файле и затем пытается выполнить вторую команду во всех файлах, пытающихся создать дубликаты уже существующих файлов.
Любой совет, это моя первая попытка программирования (если вы не можете сказать), будьте осторожны.
Благодаря
Если вы используете другой пакетный файл из пакетного файла, который нужно используйте команду CALL для запуска вторичного командного файла. Синтаксис вашего кода говорит, что вы используете это из командной строки, а не из пакетного файла. – Squashman
Пакет не знает, как вы хотите, чтобы ваши команды группировались. Вы выполняете: '(loop1: команда A & команда B & (loop2: команда C & команда D))', но вы, вероятно, хотите '(loop1: команда A & команда B) & (loop2: команда C & команда D)' , Вы можете использовать скобки для своего кода. Вы пишете, вы делаете это в batchfile, но squashman прав: вы используете синтаксис для командной строки. Кстати: не пытайтесь писать «однострочники», если это не совсем необходимо, особенно если вы новичок. – Stephan