Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 05.01.2007, 17:27   [включить плавающее окно]   #1
BMX1
Мужской Новенький
Автор темы
 
Регистрация: 05.01.2007
Как написать такой *bat или *cmd файл?

В командах DOS не силен, а надо срочно решить задачу такого рода:

Допустим есть файл D:\Config files\config file.cfg
И есть директория C:\Documents and Settings\Client\Мои документы\STFFH Prof , в этой папке STFFH Prof, время от времени создаются всё новые и новые папки именами Anton (C:\Documents and Settings\Client\Мои документы\STFFH Prof \Anton), Ivan, Maria, Anna и т.д.

Нужно создать *.bat ( или *.cmd) файл выполняющий копирование файла config file.cfg на все подпапки директории C:\Documents and Settings\Client\Мои документы\STFFH Prof, то есть в папки Anton, Ivan, Maria, Anna и т.д.

(Скажем bat (cmd) файл будет выполнятся каждый раз при перезагрузке через автозагрузку или по команде, но это не важно.)
В определенную папку копировать файл одной командной строкой я умею, а тут когда такие папки появляются каждый день и каждый час…. Ну думаю хорошо объяснил свой вопрос.

Теперь вопрос.
Как пишется такая командная строка? Пожалуйста, помогите!
BMX1 вне форума  
Ответить с цитированием
Непрочитано 05.01.2007, 18:25   [включить плавающее окно]   #2
point
Мужской Общительный
 
Аватар для point
 
Регистрация: 30.12.2006
Адрес: Донецк
Ну ты даешь . Я думаю что для достижения такой цели bat файл тебе не может помочь. Напиши програмулину хотябы консольную. Это не сложно, если хоть чуть чуть програмируешь.
point вне форума  
Ответить с цитированием
Непрочитано 05.01.2007, 18:53   [включить плавающее окно]   #3
BMX1
Мужской Новенький
Автор темы
 
Регистрация: 05.01.2007
Кроме простых команд DOS ничего не знаю. Неужели нельзя сделать строчку для cmd файла?
BMX1 вне форума  
Ответить с цитированием
Непрочитано 05.01.2007, 19:20   [включить плавающее окно]   #4
point
Мужской Общительный
 
Аватар для point
 
Регистрация: 30.12.2006
Адрес: Донецк
Какую строчку? Ты подумай, представил как это будет выглядеть? Допустим ты выполнишь команду dir в нужной папке и она тебе выведет список каталогов, в которые нужно копировать файл. Но как ты передать этот аргумент команде copy т.е. каталоги? это невозможно!
point вне форума  
Ответить с цитированием
Непрочитано 05.01.2007, 20:26   [включить плавающее окно]   #5
BMX1
Мужской Новенький
Автор темы
 
Регистрация: 05.01.2007
point, возможно, всё возможно в английской винде

FOR /F %%i IN ('dir /AD /B "C:\Documents and Settings\Client\My Documents\STFFH Prof"') DO COPY "D:\Config files\config file.cfg" "C:\Documents and Settings\Client\My Documents\STFFH Prof\%%i"

работает замечательно. Только у меня русская винда. А там пака не "My Documents", а "Мои Документы".
Надо победить проблему с русской кодировкой. Незнаешь как?
BMX1 вне форума  
Ответить с цитированием
Непрочитано 05.01.2007, 22:52   [включить плавающее окно]   #6
Jabberwocky
Мужской Умудрённый
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Цитата (BMX1) »
Надо победить проблему с русской кодировкой. Незнаешь как?
Не вижу, в чем проблема и что побеждать. У меня всё прекрасно работает и с русскими именами папок, и с русскими именами файлов.
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 05.01.2007, 23:07   [включить плавающее окно]   #7
BMX1
Мужской Новенький
Автор темы
 
Регистрация: 05.01.2007
Jabberwocky, чем редактировал cmd? На стандартном Notepade?

BMX1 добавил :

Всё получилось, на другом сайте с программистами решили проблему. Нужно было сохранить в другой кодировке. Помог AkelPad.
Всем спасибо!
Тема закрыта.
BMX1 вне форума  
Ответить с цитированием
Непрочитано 06.01.2007, 01:41   [включить плавающее окно]   #8
Jabberwocky
Мужской Умудрённый
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
На будущее. Если кто заинтересуется. под другой кодировкой подразумевается досовская (она же CP-866), в которой прекрасно сохраняет например FAR. Для этих целей можно пользоваться и notepad-ом, но необходимо использовать шрифт Terminal.
:merci:
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 06.01.2007, 03:24   [включить плавающее окно]   #9
Daven
Мужской Администратор
 
Аватар для Daven
 
Регистрация: 06.03.2006
Адрес: Москва
Насколько в gnu bash-e все проще
__________________
[root@localhost]
Android 2.3.1 (Gingerbread) @ HTC Desire Z @ 1.3GHz
Daven вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 17.01.2017, 18:16   [включить плавающее окно]   #10
Kinder
Мужской Новенький
 
Регистрация: 17.01.2017
подскажите, как исправить этот код, если на примере автора папка STFFH Prof не одна, и файл нужно скопировать в
C:\Documents and Settings\Client\Мои документы\STFFH Prof\Anton
C:\Documents and Settings\Client\Мои документы\1 \Maria\
C:\Documents and Settings\Client\Мои документы\2 \Anna\

и тд.
Kinder вне форума  
Ответить с цитированием
Непрочитано 18.01.2017, 11:12   [включить плавающее окно]   #11
VitohA
Мужской Интересующийся
 
Регистрация: 13.09.2016
Адрес: Voronezh
Kinder , обязательно ли cmd?
На PS будет примерно так:

gci -Recurse -Directory -path "path to my docs folder" | where {$_.FullName.Split("\").Count -eq 6} |% {cp "path to config" $_.FullName}

На 5м PS у gci появился параметр depth, там строка покороче будет.
VitohA вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 13:20   [включить плавающее окно]   #12
Silver Raven
Мужской Интересующийся
 
Аватар для Silver Raven
 
Регистрация: 25.05.2017
А можно я сюда влезу? Не хочется пилить отдельную тему из-за какой-то ерунды...

Вот надо мне создать символьную ссылку, а он не хочет!

Код:
C:\Users\SilverRaven>mklink /d C:\Users\SilverRaven\Documents\My Games\Skyrim Special Edition D:\Games\The Elder Scrolls V Skyrim - Special Edition\UserData
Ошибка в синтаксисе команды.
upd. Все работает. Кавычки забыл, дурак.

Последний раз редактировалось Silver Raven; 15.05.2018 в 14:44.
Silver Raven вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 14:37   [включить плавающее окно]   #13
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
А если так:
Код:
mklink /d "D:\Games\The Elder Scrolls V Skyrim - Special Edition\UserData\Skyrim Special Edition" "C:\Users\SilverRaven\Documents\My Games\Skyrim Special Edition"
?
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 15:08   [включить плавающее окно]   #14
Silver Raven
Мужской Интересующийся
 
Аватар для Silver Raven
 
Регистрация: 25.05.2017
garniv

Эээ, а зачем? Я ж ничего не напутал?

mklink /d "путь в котором будет находится ссылка" "путь в котором на самом деле находятся файлы (т.е. диск D)"
Silver Raven вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 15:37   [включить плавающее окно]   #15
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
Потому что путь с пробелами должен быть заключен в кавычки.

Добавлено через 1 минуту

https://support.microsoft.com/en-us/...uotation-marks
Цитата
Long filenames or paths with spaces are supported by NTFS in Windows NT. However, these filenames or directory names require quotation marks around them when they are specified in a command prompt operation. Failure to use the quotation marks results in the error message.
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.

Последний раз редактировалось garniv; 15.05.2018 в 15:39.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 16:16   [включить плавающее окно]   #16
Silver Raven
Мужской Интересующийся
 
Аватар для Silver Raven
 
Регистрация: 25.05.2017
garniv

Дык об этом я уже и сам написал выше:

Цитата (Silver Raven) »
upd. Все работает. Кавычки забыл, дурак.
Silver Raven вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.05.2018, 16:49   [включить плавающее окно]   #17
garniv
Мужской Модератор
 
Аватар для garniv
 
Регистрация: 29.06.2004
Цитата (Silver Raven) »
Дык об этом я уже и сам написал выше
ОК
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай.
garniv вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 19:27. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey