PDA

Показать полную графическую версию : [решено] скопировать папку в другую папку, открыть sublime_text.exe и отключить обновление


v79italya
04-11-2019, 08:20
здравствуйте. бат с таким текстом:cmd.exe /c "<nul set /p sTemp="eter978dsfd"|clip.exe"
start sublime_text.exe открывает Sublime. только еще в буфер обмена сохраняет текст.после открытия Sublime доп.окошком предлагается обновление. каким кодом можно скопировать папку в другую папку, открыть Sublime и закрыть окно с предлагаемым обновлением?
наверное вариантом можно прописать нажатия кнопок: после открытия Sublime окно с обновлением становится активным и кнопками стрелка вправо и Enter можно закрыть окно.
адрес папки, которую копируем - C:\aa
адрес папки, куда копируем - C:\adb
еще бы удалить строку, которая в буфере сохраняет текст. пробовал удалением - перестает работать бат.

Iska
04-11-2019, 09:37
каким кодом можно … закрыть окно с предлагаемым обновлением? »
Никаким.

наверное вариантом можно прописать нажатия кнопок: после открытия Sublime окно с обновлением становится активным и кнопками стрелка вправо и Enter можно закрыть окно. »
Нет в пакетных файлах никаких средств для «нажатия кнопок». AutoIt/AutoHotKey в помощь.

еще бы удалить строку, которая в буфере сохраняет текст. пробовал удалением - перестает работать бат. »
Да ладно. Удаляете всю первую строку — и пакетный файл перестаёт работать? Не верю.

P.S. Вместо того, чтобы щёлкать по кнопкам, достаточно просто задать в настройках:
https://i.imgur.com/UhJSRuv.png

v79italya
04-11-2019, 12:13
Удаляете всю первую строку »
так я не знал что всю надо удалять. думал cmd.exe обязательно должно присутствовать в коде. сейчас да, работает. спасибо
а вот с настройками в саблиме не сработало. на скрине ошибка
еще папку бы копировать батом

Iska
04-11-2019, 15:48
а вот с настройками в саблиме не сработало. на скрине ошибка »
Так у Вас уже есть фигурные скобки с пользователькими настройками внутри, не надо было их дублировать. Разместите «"update_check": false» внутри вторых фигурных скобок, не забыв отделить этот параметр запятой от последующих (если Вы размещаете его не последним), и уберите первые фигурные скобки.

еще папку бы копировать батом »
xcopy.exe /?
robocopy.exe /?

v79italya
04-11-2019, 18:02
уберите первые фигурные скобки » сделал. обновление не предлагается. спасибо
с копированием папок не все так просто. вот так копируетxcopy C:\aa\bb C:\adb /E
но если копируемые файлы уже существуют в папке, то копирование не происходит или перезаписываются файлы.
если в папке уже есть файл, например, папка abc123, то нужно создать еще папку abc123_1, при следующем копировании еще папку abc123_2 и так далее(abc123_3,abc123_4,abc123_5...)
в Яндексе ничего не нагуглил

DJ Mogarych
04-11-2019, 19:59
Нет в пакетных файлах никаких средств для «нажатия кнопок». »
Ну почему - https://stackoverflow.com/a/17851491

Iska
04-11-2019, 20:23
v79italya, разъясните подробно, что Вы хотите скопировать, куда скопировать и под каким именем. Можно на конкретном примере.

DJ Mogarych, потому что это уже не:

а) пакетные файлы, а WSH;
б) «нажатие кнопок», а попытка отсылки нажатий клавиш активному окну со слабо гарантированным результатом.

Увы. Я зарёкся такое пользовать.

v79italya
04-11-2019, 21:03
разъясните подробно »
нужно скопировать папку, например, с названием abc123. в папке будут и папки и файлы. в основном будут файлы .html, .css, .js, графические файлы и др. при копировании, если по адресу C:\adb\ уже есть папка abc123, то при копировании добавить суффикс _1(abc123_1), при следующем копировании _2 (abc123_2). таким образом в папке по адресу C:\adb\ могут быть несколько папок abc123 с разным суффиксом.
по моему ничего не упустил. кукую то папку могу потом вручную переименовать. в этом случае, при следующем копировании папки, если есть по адресу C:\adb\ папки abc123, abc123_1, abc123_2, переименованная_папка, abc123_4, abc123_5, то устроит папка с названием abc123_3 или abc123_6. не особо и важно.

Iska
04-11-2019, 21:55
v79italya, сие может выглядеть примерно так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sParentFolder=C:\Мои проекты\0283\Source
set sDestFolder=C:\Мои проекты\0283\Destination
set sSourceFolderName=abc123

if not exist "%sParentFolder%\." (
echo Can't find parent folder [%sParentFolder%].
exit /b 1
)

if not exist "%sParentFolder%\%sSourceFolderName%\." (
echo Can't find parent folder [%sParentFolder%\%sSourceFolderName%].
exit /b 2
)

if not exist "%sDestFolder%\." (
echo Can't find destination folder [%sDestFolder%].
exit /b 3
)

if not exist "%sDestFolder%\%sSourceFolderName%\." (
md "%sDestFolder%\%sSourceFolderName%"
xcopy.exe /e "%sParentFolder%\%sSourceFolderName%\*.*" "%sDestFolder%\%sSourceFolderName%\*.*"

exit /b 0
)

set /a iCount = 0

:loop
set /a iCount += 1

if not exist "%sDestFolder%\%sSourceFolderName%_%iCount%\." (
md "%sDestFolder%\%sSourceFolderName%_%iCount%"
xcopy.exe /e "%sParentFolder%\%sSourceFolderName%\*.*" "%sDestFolder%\%sSourceFolderName%_%iCount%\*.*"

exit /b 0
)
goto :loop

endlocal
exit /b 0

в этом случае, при следующем копировании папки, если есть по адресу C:\adb\ папки abc123, abc123_1, abc123_2, переименованная_папка, abc123_4, abc123_5, то устроит папка с названием abc123_3 или abc123_6. не особо и важно. »
Сначала там появится abc123_3, затем abc123_6, abc123_7 и т.д. вплоть до abc123_(2³º-1).

v79italya
04-11-2019, 22:17
примерно так »
опробовал - все работает. я так и знал что код будет строк в двадцать. главное все работает. спасибо большое.
в принципе, раз обновление не мучает, то саблиме можно запускать иконкой программы, а при надобности батом копировать папку. все отлично. спасибо




© OSzone.net 2001-2012