Предварительный просмотр вывода команды в текстовый файл перед запуском команды (Пакет) - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть , который работает как положено, удаляя файлы с указанной строкой или расширением, но я хочу сохранить запись о том, что было удалено.

Я хочувозьмите выходные данные команды и запишите их в файл .txt на моем рабочем столе перед выполнением действительной команды:

        if /I %CONFIRM%==y  (
            (del /F /S %FOLDER%\*%DELETE%)>"C:\Users\%username%\Desktop\deleted.txt"
            del /F /S %FOLDER%\*%DELETE%
        )    

В этом случае %DELETE% - это значение пользовательской входной переменной bak.

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

Could Not Find C:\Users\USERXYZ\Desktop\*bak

Есть идеи?

1 Ответ

0 голосов
/ 27 апреля 2019

Возможно

set /p "confirm=delete %FOLDER%\*%DELETE% ? "
if /I %CONFIRM%==y  (
   (ECHO del /F /S %FOLDER%\*%DELETE%)>"C:\Users\%username%\Desktop\deleted.txt"
   (dir/S/B %FOLDER%\*%DELETE%)>>"C:\Users\%username%\Desktop\deleted.txt"
    del /F /S %FOLDER%\*%DELETE%
 )

может помочь.

В вашем коде первая команда del удаляет файл И должен создать файл deleted.txt, содержащийимена удаленных файлов.Поскольку эти файлы теперь удалены, вторая команда del совершенно правильно сообщает, что не может удалить файлы, поскольку их больше нет.

Обратите внимание, что > создаст НОВЫЙ файл, тогда как>> добавит к существующему файлу (или создаст новый файл, если его еще не существует)

echo del в этом коде показывает команду, которая должна быть выполнена - вы можете или не хотите этого- ИДК.Однако > помещает это в НОВЫЙ файл.

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