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

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

Ответить
Настройки темы
CMD/BAT - [решено] Проверить процесс, создать папку "AT-1" в папке "AT" и вместе с ее файлами и папками

Аватара для KOD65001

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


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

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


Есть папка "AT" с постоянным именем, полный путь C:\AT

Есть папка "M" тоже с постоянным именем, полный путь C:\M

В папке "M" есть еще папка с файлами и подпапками. Имя папки, которая лежит в папке "M" всегда разное
и может принимать вид, например такой: "Блок © VF 办公室"

Нужно чтобы при запуске BAT скрипта выполнялась проверка процесса "calc.exe"


1) Если процесс "calc.exe" есть, то

Ожидать когда процесс "calc.exe" завершится, чтобы выполнить пункт (2)


2) Если процесса "calc.exe" нету, то

создать папку "AT-1" в папке "AT" и всю папку "Блок © VF 办公室" вместе с ее файлами и подпапками переместить в созданную папку "AT-1", но
только в том случае если в папке "AT" нету папки "AT-1", а если папка "AT-1" уже есть, то создать папку "AT-2" и переместить туда!
затем закрыть BAT скрипт.

P.S. В папке "M" файлы и подпапки могут быть с разными именами, расширениями, размерами и атрибутами (системные, скрытые, только для чтения)


Это пример ДО выполнения скрипта:

C:\AT\AT-1\Круг © VF 办公室\VF 办公室 © Круг\Круг.txt

C:\M\Блок © VF 办公室\VF 办公室 © Блок\Блок.exe


Это пример ПОСЛЕ выполнения скрипта:

C:\AT\AT-1\Круг © VF 办公室\VF 办公室 © Круг\Круг.txt

C:\AT\AT-2\Блок © VF 办公室\VF 办公室 © Блок\Блок.exe

C:\M\

Отправлено: 14:22, 04-07-2020

 

Ветеран


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

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


Foreigner, Вы зачем-то процитировали не себя, а меня, попутно ответив на не заданный вопрос (речь шла про Калькулятор).

Отправлено: 18:32, 05-07-2020 | #21



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

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


Аватара для YuS_2

Crazy


Contributor


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

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


Foreigner, кстати да, в цитате речь про калькулятор же, а не про кодовую страницу... как-то сразу и не заметил

-------
scio me nihil scire. Ѫ


Отправлено: 20:31, 05-07-2020 | #22


Ветеран


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

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


Цитата YuS_2:
кстати да, в цитате речь про калькулятор же, а не про кодовую страницу... как-то сразу и не заметил »
И не мудрено:

Цитата megaloman:
Не уверен, отработает ли с папкой по имени VF 办公室 © Круг »
Цитата Foreigner:
У меня отработало.
Но, у меня все, включая cmd.exe, в UTF-8 без бом. »
Цитата Iska:
Нет такого в десятке »



Цитата Iska:
Вы зачем-то процитировали не себя, а меня »
Значит я не понял, посчитал, что вы моей цитатой ответили мне. Так иногда бывает.

Отправлено: 21:12, 05-07-2020 | #23


Ветеран


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

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


Цитата Foreigner:
Значит я не понял, посчитал, что вы моей цитатой ответили мне. »
Это я улыбнулся к тому, что, получается, не оставили даже болванку в виде write.exe → wordpad.exe?!

Отправлено: 21:48, 05-07-2020 | #24


Ветеран


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

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



Цитата Iska:
что, получается, не оставили даже болванку в виде write.exe → wordpad.exe?! »
Файл calc.exe есть ( C:\Windows\System32\calc.exe ), поэтому его можно запустить 'calc', но процесса с таким именем нет ( есть Calculator.exe ), вот такая ситуация.
Что касается write, то он есть. Процесс wordpad.exe

Код: Выделить весь код
 PS > write.exe
 PS > get-ciminstance win32_process | ? { $_.Name -eq 'wordpad.exe' } | select CommandLine

CommandLine
-----------
"C:\Program Files\Windows NT\Accessories\wordpad.exe"
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:06, 05-07-2020 | #25


Старожил


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

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


Они ссылаются на C: \ Windows \ System32 \ calc.exe по причине обратной совместимости. А так, да, в настоящее время калькулятор один - современное приложение для Windows с открытым исходным кодом (на гитхабе).
Process Explorer выделяет Calculator.exe ярко-голубым (для WinRT), уровень целостности AppContainer (давно смотрела, но вряд ли что-то там изменилось).
  • https://github.com/microsoft/calculator ссылка на гитхаб
  • C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_10.1910.0.0_x64__8wekyb3d8bbwe\Calculator.exe - расположение
  • two URL protocol: calculator and ms-calculator (URI)

//к делу не относится, но на всякий случай (вдруг кому-то интересно будет):
в NET Framework UseShellExecute = true используется по умолчанию;
в NET Core UseShellExecute = false - по умолчанию.
Причина: производительность. UseShellExecute очень специфичен для Windows и значительно медленнее.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:37, 05-07-2020 | #26


Ветеран


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

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


Цитата Foreigner:
…но процесса с таким именем нет ( есть Calculator.exe ), вот такая ситуация. »
Это-то понятно. Я именно про болванку, по аналогии со write.exe.


Foreigner, спасибо, ясно.


Цитата птичка0001:
в NET Framework UseShellExecute = true используется по умолчанию;
в NET Core UseShellExecute = false - по умолчанию. »
птичка0001, спасибо, ясно.

Цитата птичка0001:
UseShellExecute очень специфичен для Windows и значительно медленнее. »
Я как-то смотрел, у Gunsmoker'а что-ли, разбор создания процесса «вглубь», так тихий ужас, сколько и чего там наворочено по факту…

Цитата птичка0001:
//к делу не относится, но на всякий случай (вдруг кому-то интересно будет): »
Конечно интересно. Да и к делу относится.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:04, 06-07-2020 | #27


Ветеран


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

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


Цитата птичка0001:
в NET Framework UseShellExecute = true используется по умолчанию;
в NET Core UseShellExecute = false - по умолчанию. »
Что-то я не понимаю. Например беру PowerShell-7, которая на Net Core:
Код: Выделить весь код
 PS > [Diagnostics.ProcessStartInfo]::new().UseShellExecute
False
Но при этом в ней запускаются процессы по файловой ассоциации. Или это из другой "оперы"?
Код: Выделить весь код
 PS > 11 > 11.txt
 PS > .\11.txt   # запускает notepad

Отправлено: 09:28, 06-07-2020 | #28


Старожил


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

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


Насколько я знаю, поведение по Start-Process в PowerShell Core все ещё аналогично Windows PowerShell - все ещё &True; в NET Core по умолчанию &False.
См. следующую ссылку https://docs.microsoft.com/en-us/win...p-registration
И 2 ссылку: https://docs.microsoft.com/ru-ru/win...ectedfrom=MSDN

Последний раз редактировалось птичка0001, 06-07-2020 в 09:51.

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

Отправлено: 09:41, 06-07-2020 | #29


Аватара для YuS_2

Crazy


Contributor


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

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


Foreigner,
Цитата Foreigner:
Файл calc.exe есть ( C:\Windows\System32\calc.exe ), поэтому его можно запустить 'calc', но процесса с таким именем нет ( есть Calculator.exe ), вот такая ситуация. »
Цитата YuS_2:
Зачем отслеживать калькулятор? Тем более, что наименование реального процесса, в разных версиях windows могут отличаться... »

-------
scio me nihil scire. Ѫ


Отправлено: 12:44, 06-07-2020 | #30



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" temphard Скриптовые языки администрирования Windows 12 10-01-2014 18:36
Интерфейс - [решено] пропала кнопка "Создать контакт" в папке "Контакты" 75Roman Microsoft Windows 7 5 26-04-2012 21:19
Доступ - [решено] Надо расшарить папку "буфер" и в ней создать папку "личное" и закрыть к ней доступ stv_J Microsoft Windows 2000/XP 20 20-11-2010 13:09
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход