|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - помогите пожалуйста выявить ошибку в скрипте |
|
CMD/BAT - помогите пожалуйста выявить ошибку в скрипте
|
Новый участник Сообщения: 4 |
вот мое задание. создать файл sh и bat, который выполняет следующее:
На вход пакетному файлу приходит абсолютный или относительный путь к папке (как параметр пакетного файлы). Если такой папки нет, то писать "Данной папки нет" и завершить выполнение программы. Если такая папка есть, то вывести структуру каталога (включая подкаталоги). dir -dir1 --dir1.1 --dir1.2 -dir2 --dir2.1 вот мой код @echo off SetLocal EnableDelayedExpansion set var1=%1 set n set m m=0 n=0 for /f "delims=\" %var1% %%n in (*.*) do (set /a n=!n!+1) set /a n=n-1 if exist %var1% ( (for /r /f "delims=\" %var1% %%A in (*.*) do (set /a m=!m!+1) set /a m=m-1 for /r %var1% %%G in (*.*) do (n=m-n | for /l (n, 0, -1) do echo - | for /r %var1% %%A in (*.*) do (echo %%~nA))) else (echo "Данной папки нет") pause пишет, что m и n не являются внешними или внутренними командами и что непредвиденное появление пути |
|
Отправлено: 21:14, 23-10-2018 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 21:47, 23-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
dir1 -dir1.1 --dir1.1.1 --dir1.1.2 -dir1.2 -dir1.2.1 dir2 где каждый знак - обозначает степень вложенности файла |
|
Отправлено: 15:45, 31-10-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off
cls
If "%~1"=="" (Echo !!! No Input Folder &Pause &Exit /B 2)
If Not Exist "%~1" (Echo !!! Folder not found "%~1" &Pause &Exit /B 1)
Set "BoxIn=%~1"
If "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn:~0,-1%"
Set "Def="
Set "Marg= "
rem Set "Marg="
Echo %BoxIn%
For /F "usebackq delims=" %%d IN (`2^>nul Dir "%BoxIn%" /B /A:D`) DO Call :Out "%BoxIn%\%%d" %Def%- "%Marg%"
pause
GoTo :Eof
:Out
Echo %~3%2%~nx1
For /F "usebackq delims=" %%d IN (`2^>nul Dir %1 /B /A:D`) DO Call :Out "%~1\%%d" %2- "%~3%Marg%"
GoTo :Eof
|
------- Последний раз редактировалось megaloman, 31-10-2018 в 21:25. Отправлено: 18:35, 31-10-2018 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать предложу и свой вариант, тут форматирование немного другое, но именно как у ТС записано:
@echo off set "sdir=C:\papka"& if not "%~1"=="" set "sdir=%~1" if not exist "%sdir%" echo folder not found "%sdir%"& pause& exit for /f "delims=" %%a in ('dir /ad/b/s "%sdir%"') do set "d=%%a"& call :# "%%d:%sdir%\=%%" pause& exit :# setlocal enabledelayedexpansion set "d=%~1" for %%a in ("%d:\=" "%") do set "s=!s!-" for /f "delims=" %%a in ("%d%") do echo %s%%%~na endlocal exit /b |
|
Отправлено: 18:41, 31-10-2018 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать alpap, Мой вариант нагляднее, я напрягался
![]() Set "Marg=" |
------- Отправлено: 19:00, 31-10-2018 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 19:03, 31-10-2018 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать alpap,
Что-то в консерватории надо менять
Tree
D:\CMD
└───JS_Host
├───Kaz_Copy_Move
├───WindowsScript.5v6b6626
│ ├───Win2k_ru
│ ├───Win9xMe
│ └───_Docs
├───_Work
│ ├───Arhiv
│ ├───Mail
│ │ ├───In
│ │ └───Out
│ ├───Protokol
│ │ └───Arhiv
│ ├───Report
│ │ ├───APK
│ │ │ ├───Obl
│ │ │ └───Resp
│ │ ├───Arhiv
│ │ └───Buh
│ │ ├───Obl
│ │ └───Resp
│ └───Soft
│ ├───Arhiv
│ ├───In
│ └───Out
├───_XLS
├───Анализ_лог_файлов_Аргуса
├───Дискета_от_книги
│ ├───Chapter01
│ ├───Chapter02
│ ├───Chapter03
│ ├───Chapter04
│ ├───Chapter05
│ │ └───ForFind
│ ├───Chapter06
│ ├───Chapter07
│ ├───Chapter08
│ ├───Chapter09
│ ├───Chapter10
│ └───Chapter11
├───Из_интернета
│ ├───Автоматизация работы с использованием Windows Scripting Host.files
│ │ └───ConfRefresh.files
│ ├───Листинг 1.files
│ │ └───ConfRefresh.files
│ ├───Основы WSH
│ └───Сценарии WMI для начинающих.files
└───Отлажено
-JS_Host
--Kaz_Copy_Move
--WindowsScript
--_Work
--_XLS
--Анализ_лог_файлов_Аргуса
--Дискета_от_книги
--Из_интернета
--Отлажено
---Win2k_ru
---Win9xMe
---_Docs
---Arhiv
---Mail
---Protokol
---Report
---Soft
----In
----Out
----Arhiv
----APK
----Arhiv
----Buh
-----Obl
-----Resp
-----Obl
-----Resp
----Arhiv
----In
----Out
---Chapter01
---Chapter02
---Chapter03
---Chapter04
---Chapter05
---Chapter06
---Chapter07
---Chapter08
---Chapter09
---Chapter10
---Chapter11
----ForFind
---Автоматизация работы с использованием Windows Scripting Host
---Листинг 1
---Основы WSH
---Сценарии WMI для начинающих
----ConfRefresh
----ConfRefresh
Для продолжения нажмите любую клавишу . . .
Моё творение D:\CMD -JS_Host --Kaz_Copy_Move --WindowsScript.5v6b6626 ---Win2k_ru ---Win9xMe ---_Docs --_Work ---Arhiv ---Mail ----In ----Out ---Protokol ----Arhiv ---Report ----APK -----Obl -----Resp ----Arhiv ----Buh -----Obl -----Resp ---Soft ----Arhiv ----In ----Out --_XLS --Анализ_лог_файлов_Аргуса --Дискета_от_книги ---Chapter01 ---Chapter02 ---Chapter03 ---Chapter04 ---Chapter05 ----ForFind ---Chapter06 ---Chapter07 ---Chapter08 ---Chapter09 ---Chapter10 ---Chapter11 --Из_интернета ---Автоматизация работы с использованием Windows Scripting Host.files ----ConfRefresh.files ---Листинг 1.files ----ConfRefresh.files ---Основы WSH ---Сценарии WMI для начинающих.files --Отлажено Для продолжения нажмите любую клавишу . . . |
------- Последний раз редактировалось megaloman, 31-10-2018 в 21:20. Отправлено: 20:05, 31-10-2018 | #8 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 00:36, 01-11-2018 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Драйвер - выдает ошибку 0xc000000f помогите пожалуйста!? | tenderdemy | Microsoft Windows 7 | 4 | 17-02-2016 17:25 | |
CMD/BAT - [решено] Подскажите ошибку в cmd скрипте | pshik | Скриптовые языки администрирования Windows | 2 | 09-09-2015 17:14 | |
Помогите выявить причину (регулярные бсоды) | Varicapp | Непонятные проблемы с Железом | 3 | 24-08-2011 14:28 | |
Помогите найти ошибку в скрипте | Anarasius | AutoIt | 4 | 03-01-2010 21:38 | |
[решено] Иногда компьютер зависает - помогите выявить проблему | illusionmgs | Непонятные проблемы с Железом | 20 | 21-04-2009 09:53 |
|