Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - как копировать файлы из одной папки в другой через .bat

Ответить
Настройки темы
CMD/BAT - как копировать файлы из одной папки в другой через .bat

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: despro
Дата: 16-09-2018
дело в том что в какую директорию человек установит программу я не знаю так что через Copy "d:\1\" "d:\2\" не пройдет

я знаю только что в папке программы будет такой путь cstrike/resources/background
ну а в ней еще папка с названием 1 (да просто имя папки "1")

как мне из cstrike/resources/background/1/ скопировать файлы в cstrike/resources/background (то есть на уровень ниже)


если не поняли то могу пересказать обычными словами

Отправлено: 20:41, 16-09-2018

 

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


используй xcopy

Отправлено: 21:00, 16-09-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 22790
Благодарности: 6612

Профиль | Отправить PM | Цитировать


Цитата despro:
если не поняли то могу пересказать обычными словами »
despro, используйте знаки препинания и заглавные буквы в начале предложений для придания тексту смысла. Использовать же повсеместно полужирный шрифт нет никакой необходимости.

Цитата despro:
дело в том что в какую директорию человек установит программу я не знаю »
Какую программу?

Как правило, путь, куда установлено приложение, тем или иным образом сохраняется в реестре.

Отправлено: 21:17, 16-09-2018 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Khmel_19:
используй xcopy »
ну и? мне нужно файлы с изначальной папки скопировать на уровень ниже
Цитата Iska:
Какую программу?
Как правило, путь, куда установлено приложение, тем или иным образом сохраняется в реестре »
Кс 1.6

видишь ли любой человек может установить игру в другой диск. Не именно как я на диск F допустим да диск D
тем самым команда copy "F:\Games\Counter-Strike Ultra Offensive\AutoPlay\Docs\cstrike\resource\background\1\файл.ехе" "F:\Games\Counter-Strike Ultra Offensive\AutoPlay\Docs\cstrike\resource\background\"

не сработает
т.к диск и локация установки другая

но директория cstrike\resource\background\1\ в любом случае останется

Последний раз редактировалось despro, 16-09-2018 в 21:42.


Отправлено: 21:29, 16-09-2018 | #4


Ветеран


Contributor


Сообщения: 22790
Благодарности: 6612

Профиль | Отправить PM | Цитировать


Цитата despro:
Кс 1.6 »
У меня его нет (и не будет). Значит, Вы сами — открываете редактор реестра, ищете раздел и параметр, куда записывается путь. Можете воспользоваться помощью Process Monitor'а.

Когда Вы точно определите раздел и наименование параметра, куда записывается путь — нам останется только извлечь его, сохранить в переменной окружения и использовать в команде copy/xcopy (…/robocopy ).

Отправлено: 21:42, 16-09-2018 | #5


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
У меня его нет (и не будет). Значит, Вы сами — открываете редактор реестра, ищете раздел и параметр, куда записывается путь. Можете воспользоваться помощью Process Monitor'а.
Когда Вы точно определите раздел и наименование параметра, куда записывается путь — нам останется только извлечь его, сохранить в переменной окружения и использовать в команде copy/xcopy (…/robocopy ). »
да не вы не поняли
вот допустим я создаю батник в папке cstrike. батник сможет определить что в этой папке (cstrike ) есть папка background?
чтобы дальше работать с ней

Отправлено: 21:48, 16-09-2018 | #6


Ветеран


Contributor


Сообщения: 22790
Благодарности: 6612

Профиль | Отправить PM | Цитировать


Цитата despro:
вот допустим я создаю батник в папке cstrike. батник сможет определить что в этой папке (cstrike ) есть папка background?
чтобы дальше работать с ней »
Да, может. Относительно местоположения самого пакетного файла — может. Например:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

if exist "%~dp0background\." (
	echo Found folder [background].
) else (
	echo Not found folder [background].
)

endlocal
exit /b 0

Отправлено: 21:58, 16-09-2018 | #7


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Да, может »
Цитата Iska:
Да, может »
а так чтобы изъять оттуда файл и скопировать его на наш ниже(из backroud обратно в cstrike)

Отправлено: 22:10, 16-09-2018 | #8


Ветеран


Contributor


Сообщения: 22790
Благодарности: 6612

Профиль | Отправить PM | Цитировать


Примерно так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

if exist "%~dp0background\." (
	if exist "%~dp0background\файл" (
		>nul copy "%~dp0background\файл" "%~dp0"
	) else (
		echo Can't find file [%~dp0background\файл].
	)
) else (
	echo Can't find folder [%~dp0background].
)

endlocal
exit /b 0
или, более прагматично, так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=background
set sSourceFile=файл

if exist "%~dp0%sSourceFolder%\." (
	if exist "%~dp0%sSourceFolder%\%sSourceFile%" (
		>nul copy "%~dp0%sSourceFolder%\%sSourceFile%" "%~dp0"
	) else (
		echo Can't find source file [%~dp0%sSourceFolder%\%sSourceFile%].
	)
) else (
	echo Can't find source folder [%~dp0%sSourceFolder%].
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:43, 16-09-2018 | #9


Аватара для YuS_2

Старожил


Сообщения: 151
Благодарности: 52

Профиль | Отправить PM | Цитировать


Цитата Iska:
Да, может. Относительно местоположения самого пакетного файла — может. »
Можно и все диски перелопатить на предмет наличия... если очень надо, конечно.
Список дисков, через тот же wmi, получить не особо сложно:
Код: Выделить весь код
wmic logicaldisk where drivetype=3 get name /value|find "="

-------
scio me nihil scire


Отправлено: 06:19, 17-09-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - как копировать файлы из одной папки в другой через .bat

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копировать файлы из одной папки в другую с помощью XCOPY Sargezzz Скриптовые языки администрирования Windows 11 13-08-2018 19:04
CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки vlz47 Скриптовые языки администрирования Windows 2 07-02-2018 22:04
CMD/BAT - [решено] bat: копировать файлы с заменой более старых asadv Скриптовые языки администрирования Windows 3 21-12-2017 14:03
CMD/BAT - [решено] Копировать содержимое с одной папки в другую Dodakaedr Скриптовые языки администрирования Windows 2 06-07-2014 21:13
VBS/WSH/JS - [решено] Надо скопировать файлы из одной папки в другую, но только если их нет в третьей rromms Скриптовые языки администрирования Windows 3 11-09-2011 21:42




 
Переход