Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Illarion93
1 / 1 / 0
Регистрация: 08.09.2015
Сообщений: 23
1

Экранирование восклицательного знака

10.12.2016, 23:21. Просмотров 1238. Ответов 3
Метки нет (Все метки)

Нужно правильно заэкранировать восклицательный знак.
Пытался по разному...
Восклицательные знаки и знаки процента в именах файлов
Тонкости языка, редкие команды и сложные скрипты
Но никак не получается


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
setlocal enabledelayedexpansion
(set $=^^^!)
set sourcedir=b:\NOT-kill!$!\
set "search_file=Area26-*.zip"
set "folders_of_dep_in=b:"
echo sourcedir %sourcedir%
for %%9 in (b:\NOT-kill!$!\ ,%folders_of_dep_in%) do (
echo SEARCH HERE ^> ^> %%9
for /f %%b in ('dir /b %%9%search_file%') do (
echo %%b
)
)
Уже при выводе sourcedir нет знака , не то чтобы еще до донести %%9.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2016, 23:21
Ответы с готовыми решениями:

Экранирование символов
Вычитал что символ ^ используется чаще всего для экранирования других...

Экранирование специальных символов
for /L %%A IN (1 1 %cnt%) DO curl -u guest:guest -X DELETE...

Экранирование вертикальной черты при задании переменной
Добрый день! Нужно несколько переменных разделить вертикальной чертой и...

Экранирование номера потока в перенаправлении вывода ECHO
30) Экранирование номера потока в перенаправлении вывода Echo Понадобился в...

Удаление первых символов до знака
Здравствуйте. Форумчане, помогите написать bat файл. Нужно чтобы он работал...

3
alpap
1573 / 1228 / 399
Регистрация: 26.04.2015
Сообщений: 4,315
11.12.2016, 03:05 2
Windows Batch file
1
2
3
4
5
6
@echo on
setlocal enabledelayedexpansion
set $=^^^!
set "sourcedir=b:\NOT-kill!$!"
echo !sourcedir!
pause
понятно, надеюсь.
1
Illarion93
1 / 1 / 0
Регистрация: 08.09.2015
Сообщений: 23
11.12.2016, 03:45  [ТС] 3
Принцип непонятен...
как !sourcedir! передать в параметр цикла?
0
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
11.12.2016, 06:01 4
Лучший ответ Сообщение было отмечено Illarion93 как решение

Решение

Вот так:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
 
setlocal enabledelayedexpansion
 
set "sourcedir=b:\NOT-kill^^^^^^^!\"
set "folders_of_dep_in=b:\"
set "search_file=Area26-*.zip"
 
call echo sourcedir "%sourcedir:^^=%"
 
for %%9 in ("%sourcedir%", "%folders_of_dep_in%") do (
    echo SEARCH HERE ^> ^> %%~9
    for /f "delims=" %%b in ('dir /b "%%~9%search_file%"') do (
        echo %%b
    )
)
.


А если использовать для раскрытия переменной sourcedir символы ! вместо символов %, то ещё проще:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
 
setlocal enabledelayedexpansion
 
set "sourcedir=b:\NOT-kill^^^!\"
set "folders_of_dep_in=b:\"
set "search_file=Area26-*.zip"
 
echo sourcedir !sourcedir:^^=!
 
for %%9 in ("!sourcedir!", "%folders_of_dep_in%") do (
    echo SEARCH HERE ^> ^> %%~9
    for /f "delims=" %%b in ('dir /b "%%~9%search_file%"') do (
        echo %%b
    )
)
.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2016, 06:01

Переместить текстовые файлы, у которых в названии содержится 2 знака и более
Всем привет, возник вопрос. Как с помощью командной строки переместить из одной...

Значение восклицательного знака
Всем привет, скажите а что значит восклицательный знак в этом выражении:...

Мигает светодиод восклицательного знака в HP2015
Всем привет, уважаемые форумчане! имеется принтер HP2015. при включении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru