3

Есть ли способ под Windows 7 эмулировать поведение символа & в терминале OS X?
Я пытаюсь запустить несколько экземпляров Wget одновременно: я могу сделать это без проблем с сортировкой в OS X, потому что у меня есть скрипт Python, который создает длинную строку, в которой каждый экземпляр Wget разделен &. Когда я выполняю его с помощью os.system() все идет хорошо.
Однако в Windows это не работает, и экземпляры запускаются последовательно. Что не то, что я хочу.
Я открыт для всех предложений: хаки cmd.exe , порты оболочки, больше Python, что угодно, пока создаются новые окна оболочки Windows. Заранее спасибо!

Изменить: я обнаружил, что файлы на самом деле загружаются с помощью этого метода, но под Windows, cmd.exe просто резко останавливает выполнение и позволяет пользователю принимать новые команды. Есть ли способ избежать этого и держать консоль "зависшей" до тех пор, пока все экземпляры Wget не завершат загрузку?

Редактировать 2: размещение кода, который я использую.

for track in album.tracks():
    tracknum = track["track_num"]
    tracktit = track["title"]
    URL = track["file"]["mp3-128"]
    filename = str(tracknum) + " - " + tracktit + ".mp3"

Теперь, под OS X, этот код прекрасно работает.

    execstr += 'bandcamp-support' +os.sep+ 'wget --tries=0 -O"{}" "{}" -q & '.format(filename,URL)
    os.system('bandcamp-support' +os.sep+ 'wget' execstr[:-3])

В Windows вместо этого это не повторяет поведение, которое я испытываю на OS X.

    os.system('start /B bandcamp-support' +os.sep+ 'wget --tries=0 -q -O"{}" "{}"'.format(filename,URL))

1 ответ1

1

Если вы являетесь поклонником оболочек * NIX, вы можете установить Cygwin и получить доступ ко всем этим оболочкам и инструментам с помощью Cygwin. От можно просто установить оболочку Bash с Win-Bash. Тем не менее, я думаю, что вам было бы лучше с Cygwin, так как он имеет много функциональных возможностей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .