Это ближайший я могу думать, чтобы ваше требование:
for /f "delims=" %i in ('dir /s /b DirPath') do @echo %~ti,%i
Обратите внимание, что вы должны удвоить процентов при использовании этого в скрипте.
Он выполняет итерацию по всем файлам/каталогам под DirPath и печатает их временную метку с последним изменением и имя файла/каталога в качестве CSV.
Не уверен, что вы подразумеваете под названием «Последнее редактирование», я не думаю, что эти метаданные хранятся в Windows (или Unix?).
Edit: Я не сделал много работы с VBS и раньше, но это выглядит, как это работает:
Set s = WScript.CreateObject("WScript.Shell")
s.Run("cmd /c (for /f ""delims="" %i in ('dir /s /b .') do @echo %~ti,%i)& pause")
Я добавил pause
держать всплывающее окно DOS в живых (выполнил его через cscript test.vbs
), чтобы я мог проверить вывод, но вы, очевидно, можете избавиться от него, если перенаправляете вывод в файл.
Спасибо за ваш ответ. В настоящее время я пытаюсь вызвать оболочку из VBA, получить текстовый дамп структуры каталогов и сохранить его в виде текстового файла. Для этого я использую следующий код. Call Shell ("cmd.exe/S/C" и "dir/s/b dirPath> текстовый файл", vbNormalFocus). Код, который вы предоставили, имеет очарование, но я не уверен, как изменить его, чтобы вписаться в код VBA. Ваша помощь очень ценится. – runswmily