![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] имя каталога в переменную |
|
|
CMD/BAT - [решено] имя каталога в переменную
|
Новый участник Сообщения: 38 |
здравствуйте
подскажите, пожалуйста, как решить задачу: есть имя каталога, в каталоге c:\temp\folder, который единожды создаётся и у него оно всегда разное. хотелось, чтобы производилось считывание имени каталога и создавалась переменная из этого имени. заранее крайне признателен! |
|
Отправлено: 20:04, 28-09-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:24, 28-09-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 20:27, 28-09-2018 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off
setlocal enableextensions enabledelayedexpansion
set sRootFolder=c:\temp\folder
set sSubFolder=
if exist "%sRootFolder%\." (
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:d /o:-n "%sRootFolder%\*.*"`
) do set sSubFolder=%%~i
if defined sSubFolder (
echo [!sSubFolder!].
) else (
echo Can't find any subfolders in root folder [%sRootFolder%].
exit /b 2
)
) else (
echo Can't find root folder [%sRootFolder%].
exit /b 1
)
endlocal
exit /b 0
|
Отправлено: 21:12, 28-09-2018 | #4 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать Iska,
@echo off setlocal enableextensions enabledelayedexpansion set sRootFolder=C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles if exist "%sRootFolder%\." ( for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:d /o:-n "%sRootFolder%\*.*"` ) do set sSubFolder=%%~i copy "%sRootFolder%\%sSubFolder%\*.*" "D:\Downloads\" ) echo %sSubFolder% endlocal exit /b 0 если использовать xcopy /Y /E , то пишет, что не удалось найти указанный путь. |
|
Последний раз редактировалось man8531, 28-09-2018 в 22:28. Отправлено: 22:16, 28-09-2018 | #5 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать нужен !
@echo off setlocal enableextensions enabledelayedexpansion set user=%username% set sRootFolder=C:\Users\%user%\AppData\Roaming\Mozilla\Firefox\Profiles if exist "%sRootFolder%\." ( for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:d /o:-n "%sRootFolder%\*.*"` ) do set sSubFolder=%%~i echo copy "%sRootFolder%\!sSubFolder!\*.*" "c:\temp\" ) echo %sSubFolder% endlocal exit /b 0 |
Отправлено: 22:39, 28-09-2018 | #6 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать Serguei Kouzmine,
не работает этот вариант, он вместе со знаком восклицания имя переменной вставляет, а не саму переменную. |
Отправлено: 22:52, 28-09-2018 | #7 |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать у вас где то опечатка - я вставил рабочий код
если хоите хелп про ! (disable delayed environment variable expansion https://stackoverflow.com/questions/...hat-does-it-do Using !var! in place of %var% accesses the changed value of var. |
Отправлено: 00:31, 29-09-2018 | #8 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать man8531, Не надо восклицаний и сетлокалов
@Echo Off
cls
Set "sRootFolder=C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles"
Set "sOutFolder=D:\Downloads"
If Not Exist "%sOutFolder%\" (Echo Can't find folder "%sOutFolder%" &Pause &Exit /B 1)
Set "sSubFolder="
FOR /F "usebackq delims=" %%d IN (`Dir "%sRootFolder%\" /A:D /B /O:D /T:W 2^>nul`) DO Set "sSubFolder=%sRootFolder%\%%d"
If "%sSubFolder%"=="" (Echo Can't find subfolders in folder "%sRootFolder%" &Pause &Exit /B 2)
Echo XCopy /Y /E "%sSubFolder%\*.*" "%sOutFolder%\"
XCopy /Y /E "%sSubFolder%\*.*" "%sOutFolder%\" ||Exit /B 3
pause
Exit /B 0
|
------- Отправлено: 02:15, 29-09-2018 | #9 |
Новый участник Сообщения: 38
|
Профиль | Отправить PM | Цитировать megaloman,
всё как нужно, спасибо! |
Отправлено: 06:30, 29-09-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Узнать имя пользователя и записать в переменную | Darkar25 | Скриптовые языки администрирования Windows | 37 | 13-01-2018 23:59 | |
CMD/BAT - [решено] Имя в переменную и запуск приложения для разных файлов в папке | Sta1917 | Скриптовые языки администрирования Windows | 10 | 18-08-2016 17:58 | |
CMD/BAT - [решено] Имя домена компьютера в переменную | qwer8383 | Скриптовые языки администрирования Windows | 3 | 21-08-2015 11:16 | |
Любой язык - [решено] ВВести имя файла в переменную. | Димончик555 | Скриптовые языки администрирования Windows | 6 | 10-03-2014 19:36 | |
CMD/BAT - [решено] Найти в реестре параметр и записать в переменную имя ветки в которой он находится | root221 | Скриптовые языки администрирования Windows | 11 | 25-11-2012 07:54 |
|