![]() |
[включить плавающее окно] Вверх #1 |
![]() Автор темы Регистрация: 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) файл будет выполнятся каждый раз при перезагрузке через автозагрузку или по команде, но это не важно.) В определенную папку копировать файл одной командной строкой я умею, а тут когда такие папки появляются каждый день и каждый час…. Ну думаю хорошо объяснил свой вопрос. Теперь вопрос. Как пишется такая командная строка? Пожалуйста, помогите! |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #2 |
![]() Регистрация: 30.12.2006
Адрес: Донецк
|
Ну ты даешь
![]() |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #3 |
![]() Автор темы Регистрация: 05.01.2007
|
Кроме простых команд DOS ничего не знаю. Неужели нельзя сделать строчку для cmd файла?
|
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #4 |
![]() Регистрация: 30.12.2006
Адрес: Донецк
|
Какую строчку? Ты подумай, представил как это будет выглядеть? Допустим ты выполнишь команду dir в нужной папке и она тебе выведет список каталогов, в которые нужно копировать файл. Но как ты передать этот аргумент команде copy т.е. каталоги? это невозможно!
|
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #5 |
![]() Автор темы Регистрация: 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", а "Мои Документы". Надо победить проблему с русской кодировкой. Незнаешь как? |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #6 |
![]() Регистрация: 14.12.2003
Адрес: Москва
|
Цитата
(BMX1) »
Надо победить проблему с русской кодировкой. Незнаешь как?
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #7 |
![]() Автор темы Регистрация: 05.01.2007
|
Jabberwocky, чем редактировал cmd? На стандартном Notepade?
BMX1 добавил : Всё получилось, на другом сайте с программистами решили проблему. Нужно было сохранить в другой кодировке. Помог AkelPad. Всем спасибо! Тема закрыта. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #8 |
![]() Регистрация: 14.12.2003
Адрес: Москва
|
На будущее. Если кто заинтересуется. под другой кодировкой подразумевается досовская (она же CP-866), в которой прекрасно сохраняет например FAR. Для этих целей можно пользоваться и notepad-ом, но необходимо использовать шрифт Terminal.
:merci:
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #9 |
![]() Регистрация: 06.03.2006
Адрес: Москва
|
Насколько в gnu bash-e все проще
![]()
__________________
[root@localhost] Android 2.3.1 (Gingerbread) @ HTC Desire Z @ 1.3GHz |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #10 |
![]() Регистрация: 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\ и тд. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #11 |
![]() Регистрация: 13.09.2016
Адрес: Citizen of the World
|
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, там строка покороче будет. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #12 |
![]() Регистрация: 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 Ошибка в синтаксисе команды. Последний раз редактировалось Silver Raven; 15.05.2018 в 14:44. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #13 |
![]() Регистрация: 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"
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #14 |
![]() Регистрация: 25.05.2017
|
garniv
Эээ, а зачем? Я ж ничего не напутал? mklink /d "путь в котором будет находится ссылка" "путь в котором на самом деле находятся файлы (т.е. диск D)" |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #15 |
![]() Регистрация: 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. |
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #16 |
![]() Регистрация: 25.05.2017
|
garniv
Дык об этом я уже и сам написал выше: Цитата
(Silver Raven) »
upd. Все работает. Кавычки забыл, дурак.
|
![]() |
![]() |
![]() |
[включить плавающее окно] Вверх #17 |
![]() Регистрация: 29.06.2004
|
Цитата
(Silver Raven) »
Дык об этом я уже и сам написал выше
![]()
__________________
Хочешь помочь новичку — делай вместе с ним. Хочешь помочь старику — делай вместо него. Хочешь помочь мастеру — отойди и не мешай. А хочешь помочь Таргитаю — сам Таргитай. |
![]() |
![]() |