Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
hoggy
Заблокирован
Эксперт С++
1

[bat] move c:\tmp\.svn c:work\.svn

17.08.2016, 14:58. Просмотров 953. Ответов 38
Метки нет (Все метки)

всем привет.
почему то он не распознает .svn как валидный путь.

как можно из батника переместить папку по имени .svn ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2016, 14:58
Ответы с готовыми решениями:

Написать bat-файл, который удаляет файлы с расширением .tmp из каталога, указанного через параметр
Ребят, помогите пожалуйста. Нужно написать bat-файл, который удаляет файлы с...

Один bat-файл запускает по очереди два других bat-файла
Имеются две папки в одной драйвера в второй программы решил сделать установку...

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

Последовательный запуск нескольких BAT-файлов из основного BAT-файла
Доброго времени суток всем... Помогите кто понимает.. Есть bat... @echo off...

Вызов одного bat в другом bat файле несколько раз
Доброго времени суток. Подскажите: есть два бат-файла, установлена система...

38
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 17:47 2
Цитата Сообщение от hoggy Посмотреть сообщение
почему то он не распознает .svn как валидный путь.
Кто он? И результат выполнения в студию, пожалуйста (лучше скриншот)

Только сначала путь поправьте:
c:work\.svn -> c:\work\.svn
0
hoggy
Заблокирован
Эксперт С++
17.08.2016, 18:13  [ТС] 3
Цитата Сообщение от YuS_2 Посмотреть сообщение
Кто он?
cmd

если вкратце:
.svn начинается с точки (не знаю, влияет ли это на что нибудь)
и он имеет атрибут hidden.

в результате move его просто не видит.
как будто бы его нет.
пишет "системный путь не найден".

xcopy можно указать: копировать скрытые тоже.
но мне не нужно долго копировать.
мне нужно быстро переместить.
0
Someone007
2434 / 1911 / 871
Регистрация: 09.05.2015
Сообщений: 4,727
Завершенные тесты: 1
17.08.2016, 18:20 4
Через команду mv в Powershell можно, если он установлен в системе...
0
Garry Galler
1600 / 1274 / 479
Регистрация: 28.10.2013
Сообщений: 3,245
17.08.2016, 18:59 5
.svn начинается с точки (не знаю, влияет ли это на что нибудь)
Не влияет. Правда создать такую папку вручную не получится.
Команда move не работает с файлами (и папками тоже), имеющими атрибуты "скрытый " и "системный"
источник
Так что все верно, что не видит.
А снять атрибут 'скрытый', переместить, установить атрибут - не вариант?
Windows Batch file
1
attrib -h c:\tmp\.svn && move c:\tmp\.svn c:\work\.svn && attrib +h c:\work\.svn
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 19:55 6
Цитата Сообщение от hoggy Посмотреть сообщение
cmd
если вкратце:
.svn начинается с точки (не знаю, влияет ли это на что нибудь)
и он имеет атрибут hidden.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Правда создать такую папку вручную не получится.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo on
@echo Создаем папку .svn
if not exist d:\test1\.svn md D:\TEST1\.svn
@echo.
@echo Скрываем папку
attrib +H d:\test1\.svn
@echo.
@echo Перемещаем папку .svn (первая попытка)
move D:\TEST1\.svn d:\TEST2
@echo.
@echo Снимаем атрибут "скрытый" с папки
attrib -H d:\test1\.svn
@echo.
@echo Перемещаем папку .svn (вторая попытка)
move D:\TEST1\.svn d:\TEST2
@echo.
@echo И опять перемещаем папку .svn
move D:\TEST2\.svn d:\TEST1
@echo.
@echo Возвращаем атрибут "скрытый" для папки
attrib +H d:\test1\.svn
pause
http://rgho.st/778LSfSqY.view
0
Garry Galler
1600 / 1274 / 479
Регистрация: 28.10.2013
Сообщений: 3,245
17.08.2016, 20:29 7
YuS_2,
Что сказать-то хотели?
0
hoggy
Заблокирован
Эксперт С++
17.08.2016, 21:31  [ТС] 8
YuS_2,
предлагаете вручную пасти атрибуты перемещаемых папок?

Добавлено через 2 минуты
Цитата Сообщение от Garry Galler Посмотреть сообщение
А снять атрибут 'скрытый', переместить, установить атрибут - не вариант?
1.
там куча папок.
некоторые скрытые. некоторые не скрытые.
если и делать так, то делать это нужно на автомате.

2.
если что-то пойдет не так,
нужно будет откатить все взад.
то бишь вернуть на место все атрибуты.

и вот здесь возникает неиллюзорный гемморой.

я думал, может есть какой нибудь моральный способ.
костыли лепить не хочется.
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 21:33 9
Цитата Сообщение от Garry Galler Посмотреть сообщение
Что сказать-то хотели?
Всё что хотел, уже сказал.

Цитата Сообщение от hoggy Посмотреть сообщение
предлагаете вручную пасти атрибуты перемещаемых папок?
Предлагал решение вопроса, который задали Вы...
0
hoggy
Заблокирован
Эксперт С++
17.08.2016, 21:35  [ТС] 10
Цитата Сообщение от YuS_2 Посмотреть сообщение
Предлагал решение вопроса, который задали Вы...
с таким же успехом я могу вручную каждую папочку перемещать из проводника.
это - ни разу не решение.

мне нужна автоматика, которая на входе получает пути: "что переместить", "куда переместить".
и молча перемещает, не создавая геммороя.
и пофиг какие тем могут быть атрибуты.
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 21:36 11
Цитата Сообщение от hoggy Посмотреть сообщение
костыли лепить не хочется.
это cmd, без них тут никак.

PS Сформулируйте всё, что требуется решить, тогда подумаем вместе, что можно сделать. А в режиме вытягивания наводящими вопросами всех условий - трудно, что-то предлагать.
0
hoggy
Заблокирован
Эксперт С++
17.08.2016, 21:38  [ТС] 12
Цитата Сообщение от YuS_2 Посмотреть сообщение
PS Сформулируйте всё, что требуется решить, тогда подумаем вместе, что можно сделать. А в режиме вытягивания наводящими вопросами всех условий - трудно, что-то предлагать.
Цитата Сообщение от hoggy Посмотреть сообщение
мне нужна автоматика, которая на входе получает пути: "что переместить", "куда переместить".
и молча перемещает, не создавая геммороя.
и пофиг какие тем могут быть атрибуты.
все что нужно - переместить папку из одного места в другое.
и что б без головняков.

всякий гемморой навроде:
вот тут атрибут скрытый, а там промежуточных каталогов не хватает - нафиг не нужен.

зы: вот я не думал, что BAT простейшую операцию выполнить не в состоянии.
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 21:51 13
Цитата Сообщение от hoggy Посмотреть сообщение
и что б без головняков.
всякий гемморой навроде:
вот тут атрибут скрытый, а там промежуточных каталогов не хватает - нафиг не нужен
Что-то вроде этого:
Windows Batch file
1
2
3
4
5
@echo off
set "src=d:\test1\.svn"
set "dst=d:\test2\.svn"
robocopy "%src%" "%dst%" "*.*" /s /e /move
pause
но это не совсем перемещение, скорее копирование с удалением...
0
hoggy
Заблокирован
Эксперт С++
17.08.2016, 21:53  [ТС] 14
Цитата Сообщение от YuS_2 Посмотреть сообщение
но это не совсем перемещение, скорее копирование с удалением...
эм..

Цитата Сообщение от hoggy Посмотреть сообщение
xcopy можно указать: копировать скрытые тоже.
но мне не нужно долго копировать.
мне нужно быстро переместить.
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 22:17 15
Цитата Сообщение от hoggy Посмотреть сообщение
эм..
Ну, вот такое вот холодное лето, это cmd

Откопал тут в загашниках чей-то код для перемещения (автора не помню):

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set "src=d:\test1"
set "dst=d:\test2"
for /f "tokens=1,2 delims=:" %%i in ('attrib /d /s "%src%\*"') do (
 set var=%%i
 call set var=%%var:~3,2%%
 call set var=%%var:S=$s %%
 call set var=%%var:H=$h %%
 call attrib %%var:$=-%% "%src%\%%~nxj">nul
 move "%src%\%%~nxj" "%dst%">nul 2>&1
 call attrib %%var:$=+%% "%dst%\%%~nxj">nul
 )
pause
но, имхо, работать быстро он тоже вряд ли будет...
1
hoggy
Заблокирован
Эксперт С++
17.08.2016, 22:43  [ТС] 16
Цитата Сообщение от YuS_2 Посмотреть сообщение
но, имхо, работать быстро он тоже вряд ли будет...
работает как то.
если позволить вывод - туча ворнингов.
хотя вроде бы все относительно быстро.
из-за ключика /s оно конечно тормоз.
но не сравнить с копированием.
0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 22:44 17
hoggy,
Да, кстати, а код требуется только в чистом cmd? Можно ведь и так сделать:
Windows Batch file
1
2
3
4
5
@echo off
set "src=d:\test1\.svn"
set "dst=d:\test2"
powershell /nologo "&{move "%src%" -destination "%dst%"}"
pause
соответственно, требуется разрешение на запуск скриптов powershell, но работать будет быстро...
0
Garry Galler
17.08.2016, 22:44
  #18

Не по теме:

Цитата Сообщение от YuS_2 Посмотреть сообщение
Всё что хотел, уже сказал
Странная у вас манера общаться. "Музыка будет по-немецки, вы не поймете" (@Oscar Wilde).
Но если вам так проще, то пожалуйста. Вежливость - как я понял, это не про вас.

0
YuS_2
Любознательный
856 / 566 / 181
Регистрация: 10.03.2016
Сообщений: 1,293
17.08.2016, 22:52 19
Цитата Сообщение от hoggy Посмотреть сообщение
из-за ключика /s оно конечно тормоз.
Это да, там ведь читаются атрибуты всех подпапок и вложенных файлов ...

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

Не по теме:

Цитата Сообщение от Garry Galler Посмотреть сообщение
Странная у вас манера общаться.
Да я вроде не грубил, но ответил аналогично манере заданного вопроса...



Если выразился не совсем понятно, то:
Цитата Сообщение от Garry Galler Посмотреть сообщение
.svn начинается с точки (не знаю, влияет ли это на что нибудь)
Не влияет. Правда создать такую папку вручную не получится.
Цитата Сообщение от YuS_2 Посмотреть сообщение
@echo Создаем папку .svn
if not exist d:\test1\.svn md D:\TEST1\.svn

Не по теме:

Цитата Сообщение от Garry Galler Посмотреть сообщение
Вежливость - как я понял, это не про вас.
Как правило, я достаточно вежлив, в ответ на вежливость...

0
Garry Galler
1600 / 1274 / 479
Регистрация: 28.10.2013
Сообщений: 3,245
17.08.2016, 23:06 20
Цитата Сообщение от YuS_2 Посмотреть сообщение
Как правило, я достаточно вежлив, в ответ на вежливость.
Значит недостаточно внимательны. По создание папки "вручную" имелось ввиду именно "вручную" - мышкой и клавиатурой, но никак не программно - командой или скриптом. Вручную windows вам не даст создать такую папку.
---------------------------------------------
Насчет кода. Если в корневой папке находятся файлы\папки только с атрибутом "скрытый" (или без оного), то для перемещения достаточно снять этот атрибут только с корневой папки. Для move этого будет достаточно. Она просто поменяет адрес корневой папки в MFT, и не будет обращать внимания на атрибуты "скрытый" у элементов своего контейнера. Разумеется, атрибут "системный" хотя бы у одного файла\папки уже не даст сделать перемещения. Но про это у ТС сказано ничего не было.
1
17.08.2016, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2016, 23:06

Запись команд из одного bat-файла в другой bat-файл
Предположил что: в 1 bat: echo echo my_text >> my_file >> new.bat и хотел...

Bat, который создаёт другой bat с командами на изменение текста
Здравствуйте, я новичок в этом деле нужно создать bat файл, который создаст...

Как вызвать в одном bat-файле другой bat-файл?
Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, каким образом...


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

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

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