2

Мне нужно запустить команду в окне cmd (в XP), которая будет возвращать результаты о файлах в данном каталоге. К счастью, любой данный каталог не будет содержать более 9999 файлов, поэтому, если я установлю для буфера строк значение 9999, то все в порядке. Однако мне нужно выполнить эту команду на 600 каталогах! Буду признателен за любые предложения о том, как решить проблему.

Я подумал, может быть, командный файл, который откроет приглашение cmd, установит буфер в 9999 строк, выполнит команду, оставит окно открытым, и пока работает первое окно, откройте новое окно и повторите процесс.

Конечно, если бы я мог буферизовать или как-то вернуть результаты более чем 9999 файлов, это было бы еще лучше.

Заранее спасибо, Андрей

1 ответ1

4

Вы можете сохранить вывод на экран в текстовом файле, используя > или >> . Чтобы использовать его, введите команду, как обычно, но в конце добавьте один или два символа «больше», а затем имя файла, в который вы хотите вывести данные, например: dir c:\users /s > c:\list.txt Использование одного > всегда создает новый файл, перезаписывая любые существующие файлы с таким именем. Использование двух >> создаст файл, если он не существует, но добавит к существующим файлам. Это может быть очень полезно для регистрации командных файлов, потому что вы можете поместить >> file.txt после каждой строки, и он выведет весь вывод на экран в один и тот же файл, чтобы вы могли просмотреть его по порядку. Имейте в виду, что использование этого метода предотвратит вывод на экран, потому что он перенаправляет его в файл. Обычно вы можете открыть файл, чтобы просмотреть его, даже когда он создается (просто убедитесь, что он не заблокирован или не сохранен в нем).


Пример командного файла с некоторыми регистрациями:

@echo off
SET DATENOW=%date:~-4,4%-%date:~-10,2%-%date:~-7,2%
SET TIMENOW=%time:~-11,2%.%time:~-8,2%.%time:~-5,2%
SET FILENAME="C:\Logs\Finance Batch %DATENOW% [%TIMENOW%].log"

if not exist "C:\Logs" md C:\Logs

ECHO ---START BATCH FILE---  [%time%]>> %FILENAME%
ECHO Clearing current folder... [%time%] >> %FILENAME%
if exist "C:\Files" rd "C:\Files" /s/q >> %FILENAME%
if not exist "C:\Files" md "C:\Files" >> %FILENAME%

ECHO Copying data from SHAREDOCS... [%time%] >> %FILENAME%
xcopy "\\domain.local\sharedocs\*.*" "C:\Files" /EXCLUDE:exclist.txt /e /c /z /k >> %FILENAME%

ECHO ---BATCH FILE COMPLETE---  [%time%]>> %FILENAME%
ECHO. >> %FILENAME%

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