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

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

Ответить
Настройки темы
CMD/BAT - батник для хардлинка файлов/соединений для папок

Аватара для 4ITEP

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


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


Конфигурация

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


Есть такая игрушка - CS: Source. Вот там есть разные режими, интернет у меня не очень, приходится играть локально. Хочу сделать себе несколько серверов разных типов, для економии размера решил сделать батник для хардлинка файлов/соединений для папок. Подскажите, где ошибка!
Код: Выделить весь код
@echo off
set /p new="Enter you path for new CSS: > "
set /p old="Enter you path for old CSS: > "
md "%new%" "%new%\cstrike" "%new%\config"
set cstrike="%new%\cstrike"
set old_cstrike="%old%\cstrike"
mklink /j "%new%\bin" "%old%\bin"
mklink /j "%new%\hl2" "%old%\hl2"
mklink /j "%new%\platform" "%old%\platform"
mklink /j "%new%\Steam" "%old%\Steam"
xcopy "%old%\config" "%new%\config" /C /I /L /H /K /R /Y
for "%old%\%%A" IN (*.exe *.dll steam_appid.txt) DO (fsutil hardlink create "%new%\%%~A" "%old%\%%A")
xcopy "%old%\rev.ini" "%new%\rev.ini"
cd "%cstrike%"
md addons bin cfg custom maps materials resource sound
for "%old_cstrike%\addons\%%B" IN (Name_Enabler.dll Name_Enabler.vdf) DO (fsutil hardlink create "%cstrike%\addons\%%~B" "%%~B")
for "%old_cstrike%\bin\%%C" IN (client.dll server.dll) DO (fsutil hardlink create "%cstrike%\bin\%%~C" "%%~C")
for "%old_cstrike%\resource\%%D" IN (*.ttf *.txt) DO (fsutil hardlink create "%cstrike%\recource\%%~D" "%%~D")
mklink /j "%cstrike%\cache" "%old_cstrike%\cache"
mklink /j "%cstrike%\download" "%old_cstrike%\download"
mklink /j "%cstrike%\downloadlists" "%old_cstrike%\downloadlists"
mklink /j "%cstrike%\media" "%old_cstrike%\media"
mklink /j "%cstrike%\models" "%old_cstrike%\models"
mklink /j "%cstrike%\sound" "%old_cstrike%\sound"
xcopy "%old_cstrike%\cfg" "%cstrike%\cfg" /L /H /K
xcopy "%old_cstrike%\custom" "%cstrike%\custom" /L /H /K
xcopy "%old_cstrike%\materials" "%cstrike%\materials" /L /H /K
xcopy "%old_cstrike%\resource" "%cstrike%\resousce" /L /H /K

for "%old_cstrike%\resource\%%E" IN (*.vpk steam.inf) DO (fsutil hardlink create "%cstrike%\recource\%%~E" "%%~E")
for "%old_cstrike%\%%F" IN (*.txt *.vdf) DO (xcopy "%%~F" "%cstrike%\recource\%%~F" /L /H /K)
echo Completed
pause

Отправлено: 10:18, 09-12-2014

 

Аватара для 4ITEP

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


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

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


P.S. команда
Код: Выделить весь код
for "%old%\%%A" IN (*.exe *.dll steam_appid.txt) DO (fsutil hardlink create "%new%\%%~A" "%old%\%%A")
должна найти файлы в папке %old%\ по маске *.exe *.dll steam_appid.txt и сделать хардлинк найденных файлов в %new%\ . По моему, в батнике ошибке именно в етой команде.

Отправлено: 10:30, 09-12-2014 | #2



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

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


Аватара для 4ITEP

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


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

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


Не работает. Батник вылетает с надписью:
Цитата:
Непредвиденное появление: IN.

Отправлено: 20:26, 09-12-2014 | #3


Ветеран


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

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


Код: Выделить весь код
for /r "%old%" %%A in (*.exe *.dll steam_appid.txt) do fsutil hardlink create "%new%\%%~nxA" "%%A"
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:12, 09-12-2014 | #4


Аватара для 4ITEP

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


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

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


А если использовать ее несколько раз, то A надо оставлять, или в каждой новой команде надо менять букву?

Отправлено: 20:00, 10-12-2014 | #5


Ветеран


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

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


Букву оставляйте, только остальное менять не забывайте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:48, 10-12-2014 | #6


Аватара для 4ITEP

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


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

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


Вложения
Тип файла: 7z log.7z
(9.9 Kb, 7 просмотров)

Работает с ошибками. Новая версия батника:
Код: Выделить весь код
set /p new="Enter you path for new CSS: > "
set /p old="Enter you path for old CSS: > "
md "%new%" "%new%\cstrike" "%new%\config"
cd "%new%"
set cstrike="%new%\cstrike"
set old_cstrike="%old%\cstrike"
mklink /j "%new%\bin" "%old%\bin"
mklink /j "%new%\hl2" "%old%\hl2"
mklink /j "%new%\platform" "%old%\platform"
mklink /j "%new%\Steam" "%old%\Steam"
xcopy "%old%\config" "%new%\config" /L /H /K /R
for /r "%old%" %%A in (*.exe *.dll steam_appid.txt) do fsutil hardlink create "%new%\%%~nxA" "%%A"
copy "%old%\rev.ini" "%new%\rev.ini"
cd "%cstrike%"
md addons bin cfg custom maps materials resource sound
for /r "%old_cstrike%\addons" %%A in (Name_Enabler.dll Name_Enabler.vdf) do fsutil hardlink create "%cstrike%\addons\%%~nxA" "%%A"
for /r "%old_cstrike%\bin" %%A in (client.dll server.dll) do fsutil hardlink create "%cstrike%\bin\%%~nxA" "%%A"
for /r "%old_cstrike%\resource" %%A in (*.ttf *.txt) do fsutil hardlink create "%cstrike%\recource\%%~nxA" "%%A"
mklink /j "%cstrike%\cache" "%old_cstrike%\cache"
mklink /j "%cstrike%\download" "%old_cstrike%\download"
mklink /j "%cstrike%\downloadlists" "%old_cstrike%\downloadlists"
mklink /j "%cstrike%\media" "%old_cstrike%\media"
mklink /j "%cstrike%\models" "%old_cstrike%\models"
mklink /j "%cstrike%\sound" "%old_cstrike%\sound"
xcopy "%old_cstrike%\cfg" "%cstrike%\cfg" /L /H /K
xcopy "%old_cstrike%\custom" "%cstrike%\custom" /L /H /K
xcopy "%old_cstrike%\materials" "%cstrike%\materials" /L /H /K
xcopy "%old_cstrike%\resource" "%cstrike%\resousce" /L /H /K
for /r "%old_cstrike%\resource" %%A in (*.vpk steam.inf) do fsutil hardlink create "%cstrike%\recource\%%~nxA" "%%A"
for /r %old_cstrike% %%A in (*.txt *.vdf) do xcopy %cstrike%\%%~nxA "%%A"
echo Completed
pause
Лог прикреплен

Отправлено: 14:08, 11-12-2014 | #7


Аватара для 4ITEP

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


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

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


команда
Код: Выделить весь код
for /r "%old%" %%A in (*.exe *.dll steam_appid.txt) do fsutil hardlink create "%new%\%%~nxA" "%%A"
ищет файлы в подпапках. Мне ето не нужно. Как запретить ей это делать?

Отправлено: 14:14, 11-12-2014 | #8


Ветеран


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

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


Цитата 4ITEP:
Работает с ошибками. »
Цитата:
Ошибка: Не удается найти указанный файл.


Это не ошибка работы пакетного файла. Это нормальная ошибка выполнения отдельной команды: искомый файл ("steam_appid.txt") отсутствует в данной директории. Чтобы не усложнять код конструкциями
Код: Выделить весь код
<...> in ('2^>nul dir /a-d/b <...>') do <...>
,
или
Код: Выделить весь код
<...> do if exist <...> fsutil <...>
,
или
Код: Выделить весь код
2>nul (for <...............>)
просто не обращайте на эти ошибки внимания или добавьте в код звёздочку (что не совсем корректно, но для Вашего случая, думаю, сгодится):
Код: Выделить весь код
steam_appid.txt*
.




Цитата 4ITEP:
команда
Код: Выделить весь код
for /r "%old%" %%A in (*.exe *.dll steam_appid.txt) do fsutil hardlink create "%new%\%%~nxA" "%%A"
ищет файлы в подпапках. Мне ето не нужно. Как запретить ей это делать? »


Попробуйте так:

Код: Выделить весь код
pushd "%old%"
for %%A in (*.exe *.dll steam_appid.txt*) do popd& pushd "%new%"& fsutil hardlink create "%%A" "%%~fA"
popd
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:27, 11-12-2014 | #9


Аватара для 4ITEP

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


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

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


А если использовать несколько раз? Не нужно ничего менять (кроме маски и пути)?

Отправлено: 07:16, 12-12-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Батник для переименования файлов Школьник 5 Скриптовые языки администрирования Windows 21 30-11-2019 21:58
CMD/BAT - [решено] батник для переименования файлов Pumpik Скриптовые языки администрирования Windows 5 01-02-2014 20:12
CMD/BAT - [решено] батник для автоматического удаления сетевых папок vanoman Скриптовые языки администрирования Windows 22 23-10-2013 16:02
CMD/BAT - [решено] Нужен батник для сканирования папок и записи результатов в файл ruslaw Скриптовые языки администрирования Windows 5 24-08-2013 14:33
CMD/BAT - [решено] Нужен батник для сканирования папок и записи результатов в файл Nun-Nun Скриптовые языки администрирования Windows 7 22-09-2010 15:23




 
Переход