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

Копировать все исходные файлы с расширением .C в каталог, указанный в качестве фактического параметра

27.11.2011, 17:59. Просмотров 2730. Ответов 23
Метки нет (Все метки)

Создавать резервную копию исходных файлов. Копировать все исходные файлы с
расширением .С в каталог указанном в качестве фактического параметра. Если
параметр не задан - создавать в текущей директории директорию bak и
копировать всё туда. Если каталог с резервной копией уже существует -
спросить у пользователя разрешение перезаписать.

Помогите с решением задачки. Заранее благодарен
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 17:59
Ответы с готовыми решениями:

Копировать из текущего каталога в указанный каталог все файлы с расширением .txt кроме одного указанного
Написать командный файл, который будет копировать из текущего каталога все файлы с расширением тхт,...

Из каталога, имя которого указано в качестве формального параметра, копировать все файлы с расширением .C
Имеется задание: Создавать резервную копию исходных файлов. Копировать все исходные файлы с ...

Копировать из текущего каталога все файлы с расширением .txt, кроме одного заданного файла, в заданный каталог
Доброго времени суток, помогите, пожалуйста с решением задачки) Написать командный файл, который...

Копировать из текущего каталога все файлы с расширением .txt, кроме одного файла
Написать пакетный файл, который будет копировать из текущего каталога все файлы с расширением .txt,...

Написать пакетный файл, который будет копировать из текущего каталога все файлы с расширением .DRV в заданные
Написать пакетный файл, который будет копировать из текущего каталога все файлы с расширением .DRV...

23
Ris
792 / 174 / 9
Регистрация: 11.01.2011
Сообщений: 543
27.11.2011, 20:26 2
исходных файлов
это те которые в текущем каталоге?

Windows Batch file
1
2
3
4
5
@echo off
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist %1 (set /p y="%1 exists, сopy files *.c to %1? (y,n): "&if "%y%"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /y "%i" "%f%\%%i")
exit
Код не проверял.
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
28.11.2011, 13:11  [ТС] 3
только папку bak создаёт и всё (
0
Ris
792 / 174 / 9
Регистрация: 11.01.2011
Сообщений: 543
28.11.2011, 14:37 4
Может быть из-за моей опечатки? (copy /y "%%i" "%f%\%%i")
1
28.11.2011, 14:37
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
28.11.2011, 16:19  [ТС] 5
Если каталог с резервной копией уже существует - спросить у пользователя разрешение перезаписать. Почему-то не выполняет данного условия (( может тоже опечатка. Гляньте пожалуйста
0
Ris
792 / 174 / 9
Регистрация: 11.01.2011
Сообщений: 543
28.11.2011, 16:54 6
попробуй внутри set /p y="" все сотри
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
28.11.2011, 17:01  [ТС] 7
Windows Batch file
1
2
3
4
5
@echo off
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist %1 (set /p y=""&if "%y%"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /y "%%i" "%f%\%%i")
exit
Если код должен быть таким то тоже не работает ((
0
Tornament
67 / 67 / 2
Регистрация: 28.10.2010
Сообщений: 329
28.11.2011, 17:56 8
Bash
1
if "%y%"=="n" exit
Лучше писать как
Bash
1
if /i "!y!"=="n" exit
Ибо нужно учесть регистр...

Windows Batch file
1
2
3
4
5
6
@echo off
setlocal ENABLEDELAYEDEXPANSION
 if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
 if exist %1 (set /p y=""&if /i "!y!"=="n" exit)
 for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /y "%%i" "%f%\%%i")
 exit
А если так ?
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
28.11.2011, 22:30  [ТС] 9
даже дерикторию bak не создаёт (
0
Tornament
67 / 67 / 2
Регистрация: 28.10.2010
Сообщений: 329
28.11.2011, 23:14 10
Windows Batch file
1
2
3
4
5
6
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist %1 (set /p y="%1 exists, сopy files *.c to %1? (y,n): "&if "!y!"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /y "%%i" "%f%\%%i")
exit
1
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
28.11.2011, 23:23  [ТС] 11
Резервирует отлично, но так же не спрашивает перед заменой (((
0
Tornament
67 / 67 / 2
Регистрация: 28.10.2010
Сообщений: 329
28.11.2011, 23:29 12
Windows Batch file
1
2
3
4
5
6
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist %1 (set /p y="%1 exists, сopy files *.c to %1? (y,n): "&if "!y!"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /-y "%%i" "%f%\%%i")
exit
А вообще, Help Copy
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
29.11.2011, 00:56  [ТС] 13
Нету запроса на замену (
0
Tornament
67 / 67 / 2
Регистрация: 28.10.2010
Сообщений: 329
29.11.2011, 13:09 14
А должен Быть.... Ибо стоит ключ /-y

Проверял у себя, работает как часы.
И как запрос на перезапись файлов. и как запрос на уже существующую папку.

Не по теме:

Нет слова нету



Windows Batch file
1
2
3
4
5
6
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist !F! (set /p y="!F! exists, сopy files *.c to !F!? (y,n): "&if "!y!"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /-y "%%i" "%f%\%%i")
exit
Если надо убрать запрос перезаписи самих файлов то поставь ключ copy /y
1
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
29.11.2011, 16:25  [ТС] 15
А так чтоб заброс на замену сразу всех файлов, а не по одному можно как-то сделать ?
0
Tornament
67 / 67 / 2
Регистрация: 28.10.2010
Сообщений: 329
29.11.2011, 17:16 16
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
setlocal ENABLEDELAYEDEXPANSION
set repl=-y
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist !F! (set /p y="!F! exists, сopy files *.c to !F!? (y,n): "&if "!y!"=="n" (exit) else (set repl=y))
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (
copy /!repl!"%%i" "%f%\%%i")
exit[
Должно помочь.

Добавлено через 2 минуты
Хотя, не так, но сейчас просто времени нет.. Потом приду допишу.
1
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
01.12.2011, 02:54  [ТС] 17
Дописывать не будешь ?? (
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
02.12.2011, 15:00  [ТС] 18
Помогите сделать так чтоб этот код заменял все файлы с а не по одному
Windows Batch file
1
2
3
4
5
6
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1"=="" (md "bak"&set f=bak) else (set f=%~1)
if exist !F! (set /p y="!F! exists, сopy files *.c to !F!? (y,n): "&if "!y!"=="n" exit)
for /f "tokens=*" %%i in ('dir /a:-d /b "*.C"') do (copy /-y "%%i" "%f%\%%i")
exit
0
Ris
792 / 174 / 9
Регистрация: 11.01.2011
Сообщений: 543
02.12.2011, 15:14 19
хз убери - из copy /-y "%%i" "%f%\%%i"
0
agasfer
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 52
02.12.2011, 15:35  [ТС] 20
Не помогло
0
02.12.2011, 15:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 15:35

"Из заданного в командной строке каталога распаковать все файлы с расширением .7z в каталог..."
я не знаю куда обратиться. вот задание с bat файлом: из заданного в командной строке каталога...

"Из заданного в командной строке каталога распаковать все файлы с расширением .7z в каталог..."
из заданного в командной строке каталога распаковать все файлы с расширением 7z в каталог,...

Копирование из текущего каталога всех файлов с расширением .txt, кроме одного указанного, в указанный каталог
Очень нужна помощь в написании бат файла или даже в исправлении. ниже задание и код,но нужно чтобы...


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

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

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