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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Экранирование спец символов в пути файла (+в условии +цикле +EnableDelayedExpansion)

Ответить
Настройки темы
CMD/BAT - Экранирование спец символов в пути файла (+в условии +цикле +EnableDelayedExpansion)

Старожил


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

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


Изменения
Автор: shadowbat
Дата: 28-04-2023
вот простенькое имя файла, который можно создать в windows
Код: Выделить весь код
C:\FO!LDER!@#`$%^&_+~;(`)[]{- =}_z_,te.st6_фы t- =6.(11+ ,фыв! +1)77 !№;%()_+!@#- =$%^&()_+66\FI_LE!@#.$.%^&_+~;()[]{}_z_test6_фы t6(11+ фыв! +1)77 !№;%()_+,!@#$`%^&(-, =)`_+66.txt
как его правильно экранировать, чтобы взаимодействовать и не критовать cmd окно?
не критовать окно скобками в условиях if и цикле for
не критовать окно воскл знаками в отложенных переменных

как сделать чтобы echo File File2 File3 File4 File5 на экране были одинаковыми? (ну или в крайнем случае отличались только обрамляющими кавычками)
Код: Выделить весь код
chcp 1251
@echo off

set File=C:\FO!LDER!@#`$%^&_+~;(`)[]{- =}_z_,te.st6_фы t- =6.(11+ ,фыв! +1)77 !№;%()_+!@#- =$%^&()_+66\FI_LE!@#.$.%^&_+~;()[]{}_z_test6_фы t6(11+ фыв! +1)77 !№;%()_+,!@#$`%^&(-, =)`_+66.txt
echo %File%

set File1=%File%
echo %File1%

if "2"=="2" (
set File2=%File%
)
echo %File2%

setlocal EnableDelayedExpansion
if "2"=="2" (
set File3=%File%
echo !File3!
)
endlocal

for %%i in (%File%) do (
set File4=%File%
)
echo %File4%

setlocal EnableDelayedExpansion
for %%i in (%File%) do (
set File5=%File%
echo !File5!
)
endlocal

Отправлено: 08:28, 28-04-2023

 

Старожил


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

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


хотя, я наверное неверно определил переменную set File= в самом начале
наверное правильнее будет создать такой файл на компьютере и считать его путь в переменную

Код: Выделить весь код
setlocal EnableDelayedExpansion
FOR /r %%I in (*) DO (set "File=%%I")
endlocal
ну или
Код: Выделить весь код
set "File=%~1"
а потом уже начинать работать с File12345

Отправлено: 10:19, 28-04-2023 | #2



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

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Экранирование спец символов в пути файла (+в условии +цикле +EnableDelayedExpansion)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] проверка полного пути файла на кол-во символов, и обрезка имени в случае превышения 9119 Скриптовые языки администрирования Windows 16 29-06-2021 08:49
PowerShell - обрезка спец символов и создание папки при копировании файла с очень длинным путем 9119 Скриптовые языки администрирования Windows 6 10-06-2021 13:04
CMD/BAT - [решено] Переименование. Заменить часть символов в имени файла. epoddubniy Скриптовые языки администрирования Windows 7 20-05-2021 15:54
CMD/BAT - удалить первые 7 символов в имени файла ВиталийВ Скриптовые языки администрирования Windows 9 03-04-2015 11:50
CMD/BAT - [решено] Как из имени файла убрать 11 символов cdp75 Скриптовые языки администрирования Windows 3 26-04-2012 06:07




 
Переход