Проблема с размером диска при использовании команды Dos Dir в Excel VBA - PullRequest
0 голосов
/ 30 апреля 2020

У меня странная проблема с размером диска при использовании команды Dos Dir в Excel VBA.

Я занимаюсь разработкой процедуры, в рамках которой мне нужно получить список каталогов со всеми его подкаталогами. каталоги, на том же компьютере и сохранить его в текстовый файл. Этот кусок кода будет запущен несколько раз по полной программе. Компьютер - это обычный c рабочий стол с Windows 10. Excel работает в C: каталог, который должен быть указан, находится в E: (внутренний диск), а файл сохраняется в root каталог N: (USB-накопитель).

Я работаю в следующем формате: "Dir / s E: \" Имя каталога "\ >> n: \ Edir.txt"

Когда я запускаю это вручную в командной строке он работает отлично, но когда я пытаюсь встроить его в команду «Shell», я обычно получаю сообщение об ошибке на панели командной строки, говорящее «Недостаточно места на диске». и текстовый файл создается, но усекается в произвольной точке списка.

Используемая строка кода: '' 'PID = Shell ("cmd / k Dir / s E: \ Directory Name \> > N: \ Edir.txt ", vbNormalFocus) '' '

Каждый из используемых дисков имеет более 150 ГБ свободного места, а полный текстовый файл имеет размер около 3,3 МБ.

I Это очень сбивает с толку: на каждом из дисков достаточно свободного места, и тот факт, что он работает каждый раз, когда вызывается вручную, а иногда при вызове из команды оболочки, делает его еще более сложным. Есть идеи?

R. Frankham

1 Ответ

0 голосов
/ 01 мая 2020

Я думаю, что нашел ответ, хотя мне непонятно, что именно и почему. «Красная сельдь» находится в сообщении об ошибке Dos «Недостаточно места на диске».

Может показаться, что настоящая проблема - это время, затрачиваемое на обработку команды Dos Dir. Если я добавлю 10-секундную задержку («Application.Wait (Now + TimeValue (« 0:00:10 »)))», чтобы дать время для завершения команды «Dir», она работает отлично. Немного неприятно, потому что это значительно замедляет выполнение, но не является большой проблемой.

R. Frankham

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...