Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/38: Рейтинг темы: голосов - 38, средняя оценка - 4.82
Ка
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 8
1

Проверка наличия в каталоге файла, а также всех файлов и папок, которые в нем указаны

13.09.2012, 14:28. Просмотров 7272. Ответов 19
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста решить лабораторные. Очень надо, я в этом ничего не понимаю.
Мне только диплом получить нада, обещаю не буду работать программисткой. Напишите решение, оч. прошу.

1. Составить программу проверки наличия на диске в каталоге, указанном первым параметром bat-файла, файла text.txt, содержащего список имен файлов и подкаталогов. Если он есть – проверить наличие перечисленных в списке файлов и вывод имен отсутствующих. Если файла text.txt нет, созданть его и записать в него имена файлов и подкаталогов.

Заранее спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2012, 14:28
Ответы с готовыми решениями:

Проверка наличия файлов (*.exe, *.com) в каталоге Windows
Разработать пакетный файл для проверки наличия файлов (*.exe, *.com) в каталоге Windows,включая...

Проверка наличия на диске в указанном каталоге перечисленных в списке файлов и вывод имен отсутствующих
Проверка наличия на диске в каталоге, указанном первым параметром КФ файла FNames.txt, содержащего...

Проверка наличия на диске в указанном каталоге файла Numbers.txt, содержащего 2 столбца целых чисел
Проверка наличия на диске в каталоге, указанном первым параметром КФ, файла Numbers.txt,...

Скрипт на проверку наличия файлов в каталоге и удаления файлов
Доброго времени суток! Накидал не большой скрипт для очистки папки. По задумке он должен проверить...

Проверка наличия файла в заданном каталоге и его подкаталогах
Здравствуйте. Мне нужно проверить наличие файла с расширением .k но точное название каталога в...

19
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
13.09.2012, 15:46 2
Цитата Сообщение от Ка Посмотреть сообщение
1. Составить программу проверки наличия на диске в каталоге, указанном первым параметром bat-файла, файла text.txt, содержащего список имен файлов и подкаталогов. Если он есть – проверить наличие перечисленных в списке файлов и вывод имен отсутствующих. Если файла text.txt нет, созданть его и записать в него имена файлов и подкаталогов.
Оте-как закручено! 3 раза перечитывал
Только не ясно, что там передается - диск вместе с каталогом
или только каталог, который затем нужно искать с места, откуда запускаем BAT-ник.
0
Ка
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 8
13.09.2012, 16:48  [ТС] 3
Цитата Сообщение от Dragokas Посмотреть сообщение
Только не ясно, что там передается - диск вместе с каталогом
или только каталог
передается только каталог, например c:\f1\kat.bat параметром передаю f1, а в f1 есть ещё каталоги с файлами, вот из этих файлов и каталогов и нада список. Я так поняла.
0
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
14.09.2012, 01:40 4
Вот бантик
Bash
1
2
3
4
5
6
7
8
9
@Echo off
If "%1"=="" (Echo Using: ThisFile.CMD File.txt) & Goto :eof
Set $log=text.txt
Cd /d "%~1"
If Exist %$log% (
    For /f "delims=" %%a in (%$log%) Do If Not Exist "%%a" Echo %%a
  ) else (
    Dir /B>%$log%
)
2
14.09.2012, 01:40
Ка
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 8
15.09.2012, 10:48  [ТС] 5
Большое спасибо) , осталось разобраться со втрой
В каталоге и его подкаталогах найти и скопировать в отдельный подкаталог все файлы, созданные после 14:00
0
Dragokas
15.09.2012, 17:39
  #6

Не по теме:

А волшебное слово...

0
Ка
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 8
16.09.2012, 14:42  [ТС] 7
Я знаю много волшебных слов...
0
Solnyshko
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
10.01.2014, 12:49 8
Добрый день. Бантик Dragokas к сожалению не работает. Помогите исправить пожалуйста его, а то у меня похожее задание.
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 16:21 9
Solnyshko, а у меня работает...
0
Solnyshko
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
10.01.2014, 19:00 10
Я копирую текст программы в блокнот (Notepad++) и сохраняю как batch file (.bat .cmd). Потом запускаю его и ничего не происходит( Вот если удалить & Goto :eof из программы, то создастся текстовый документ с именами всех файлов в этой папке.
Это половина задания, но "Если он есть – проверить наличие перечисленных в списке файлов и вывод имен отсутствующих." не выполняется.
Bash
1
2
3
4
5
6
7
8
9
@Echo off
If "%1"=="" (Echo Using: ThisFile.CMD File.txt)
Set $log=text.txt
Cd /d "%~1"
If Exist %$log% (
    For /f "delims=" %%a in (%$log%) Do If Not Exist "%%a" Echo %%a
  ) else (
    Dir /B>%$log%   
)
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 19:04 11
Solnyshko, странно. Вот так должно работать:

Bash
1
2
3
4
5
6
7
8
9
@Echo off
If "%1"=="" (Echo Using: ThisFile.CMD File.txt & Goto :eof)
Set $log=text.txt
Cd /d "%~1"
If Exist %$log% (
    For /f "delims=" %%a in (%$log%) Do If Not Exist "%%a" Echo %%a
  ) else (
    Dir /B>%$log%
)
1
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
10.01.2014, 20:29 12
Solnyshko,
Цитата Сообщение от Solnyshko Посмотреть сообщение
Using: ThisFile.CMD File.txt
то бишь по условию автора задания - запуск из командной строки с аргументом.

++ этот код не расчитан на наличие пробелов в пути к File.txt
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 20:32 13
Dragokas, если первый аргумент "%~1" - это File.txt, то почему cd /d "%~1" ? Я запускал с именем папки, только сейчас обнаружил странное в Using:
0
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
10.01.2014, 20:35 14
а кто его знает. 2 года назад писал, наверное на коленке.
Поправь + добавь кавычки и UseBackQ, если не трудно.
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 20:40 15
Bash
1
2
3
4
5
6
7
8
9
@Echo off
If "%1"=="" (Echo Using: %~nx0 ^<foldername^> & Goto :eof)
set log=text.txt
cd /d "%~1"
if exist "%log%" (
    for /f "usebackq tokens=*" %%A in ("%log%") Do If Not Exist "%%~A" Echo %%~A
  ) else (
    dir /B>"%log%"
)
1
Solnyshko
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
10.01.2014, 20:59 16
создается просто пустой файл с названием ")" без расширения

Dragokas

вот еще ваш код на похожую задачу, но чет тоже не запускается

Проверка наличия на диске в каталоге, указанном первым параметром КФ файла FNames.txt, содержащего список имен файлов и подкаталогов. Если он есть - проверка наличия перечисленных в списке файлов и вывод иен отсутствующих. Если файла FNames.txt нет, создание его и запись имен файлов и подкаталогов.

Bash
1
2
3
4
5
6
7
8
9
10
@echo off
set list=%~1\FNames.txt
if exist "%list%" (
    for /f "delims=" %%A in (%list%) do (
      if not exist "%~1\%%A" echo %%A не существует
    )
    pause
  ) else (
    dir /b>"%list%"
)
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 21:09 17
Цитата Сообщение от Solnyshko Посмотреть сообщение
создается просто пустой файл с названием ")" без расширения
А у меня работает... Какая у Вас система?

Добавлено через 15 секунд
А запускаете-то как?
0
Solnyshko
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
10.01.2014, 21:12 18
windows xp sp3

запускаю - копирую в блокнот и сохраняю с расширением .bat
потом 2 раза нажимаю по батнику
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
10.01.2014, 21:24 19
Solnyshko, надо через консоль с укзанием папки. А вашим способом надо запускать такой батник:
Bash
1
2
3
4
5
6
7
8
@Echo off
set log=text.txt
if exist "%log%" (
    for /f "usebackq tokens=*" %%A in ("%log%") Do If Not Exist "%%~A" Echo %%~A
  ) else (
    dir /B>"%log%"
)
pause>nul
1
Solnyshko
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
10.01.2014, 21:27 20
FraidZZ спасибо большое! Этот вариант работает!))
0
10.01.2014, 21:27
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2014, 21:27

Вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подкаталогах
Не могу вернуть масив с директориями...( Если выводить на экран в цикле, то все нормально, но...

Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подк
Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и...

Проверка наличия файлов определённых типов на всех компьютерах сети
Здравствуйте! Я в этом деле новичок, и вообще пока не смыслю в скриптах... Но хочу разобраться. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.