|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Украинская "і" и скрытые файлы |
|
CMD/BAT - [решено] Украинская "і" и скрытые файлы
|
Пользователь Сообщения: 148 |
Как произвести действие (например attrib -r -s -h) над всеми файлами и папками, которые имеют любой из таких атрибутов: скрытый, системный, только для чтения. Среди них есть папки и файлы с украинской буквой і.
Пробовал код: но он работает только с папками, да и без проверки атрибутов. А когда я ввожу ключ /ashr, выдается все, что имеет все эти атрибуты одновременно, файлы имеющие только один из этих атрибутов опускаются. 2) Объясните, пожалуйста, что такое ~sn ? и каким образом "істина" и "6C78~1", получаемое этим ключем, означают одну и ту же папку (что это за вариант 8.3 стандарта) ? |
|
Отправлено: 21:50, 18-12-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Diskretor:
Цитата Diskretor:
Цитата Diskretor:
|
|||
Отправлено: 22:54, 18-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо, почитаю. Остается вопрос: как совместить эти 6 команд в одну:
for /f "delims=" %%a in ('dir /b /asd') do (attrib -s -h -r "%%~sna" >nul) for /f "delims=" %%a in ('dir /b /ahd') do (attrib -s -h -r "%%~sna" >nul) for /f "delims=" %%a in ('dir /b /ard') do (attrib -s -h -r "%%~sna" >nul) for /f "delims=" %%a in ('dir /b /as') do (attrib -s -h -r "%%a" >nul) for /f "delims=" %%a in ('dir /b /ah') do (attrib -s -h -r "%%a" >nul) for /f "delims=" %%a in ('dir /b /ar') do (attrib -s -h -r "%%a" >nul) |
------- Отправлено: 01:43, 19-12-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать 1. А есть ли какой-либо смысл делать отбор по атрибутам, коль Вы их и так сбрасываете? Просто снимайте эти атрибуты для всех папок/файлов, только и всего.
2. Мне не понятны эти игры с короткими именами. У меня «attrib.exe» отработал с приведённым Вами выше именем «істина» без каких-либо проблем. |
Отправлено: 04:05, 19-12-2011 | #4 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Цитата Diskretor:
А теперь попробуйте создать скрытую системную папку с именем "Книжная серия Прочесть обязательно і" и применить этот код без ключа ~sn: |
|||
------- Последний раз редактировалось Dragokas, 19-12-2011 в 12:27. Отправлено: 12:15, 19-12-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Diskretor, ряд вопросов:
1. Вам действительно надо сие проделывать для содержимого одной папки, без вложенных? Или потом обработка вложенных папок понадобится? 2. Использование какого-либо стороннего средства допустимо по условиям задачи? Цитата Diskretor:
|
|
Отправлено: 18:16, 19-12-2011 | #6 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
(все остальные варианты чисто ради образовательных для меня целей - мне было бы очень интересно. Благодарю). Код - ок, попробую, разберу, отпишусь. |
||
------- Последний раз редактировалось Dragokas, 19-12-2011 в 20:43. Отправлено: 20:34, 19-12-2011 | #7 |
Пользователь Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Последний раз редактировалось Dragokas, 19-12-2011 в 21:25. Отправлено: 21:02, 19-12-2011 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Diskretor:
Цитата Diskretor:
Option Explicit Dim strFolder Dim objFolder Dim objFile With WScript.Arguments.Named If .Count = 1 Then If .Exists("Path") Then strFolder = .Item("Path") With WScript.CreateObject("Scripting.FileSystemObject") If .FolderExists(strFolder) Then For Each objFolder In .GetFolder(strFolder).SubFolders ClearAttributes objFolder Next For Each objFile In .GetFolder(strFolder).Files ClearAttributes objFile Next Else WScript.Echo "Folder [" & strFolder & "] not found" End If End With Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ /Path:""<path to folder>""" End If Else WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ /Path:""<path to folder>""" End If End With WScript.Quit '============================================================================= '============================================================================= Sub ClearAttributes(objValue) Const ReadOnly = 1 Const Hidden = 2 Const System = 4 Select Case TypeName(objValue) Case "Folder", "File" With objValue If .Attributes And (ReadOnly Or Hidden Or System) Then .Attributes = .Attributes And Not (ReadOnly Or Hidden Or System) End If End With Case Else ' Nothing to do End Select End Sub '============================================================================= Цитата Diskretor:
Например, поставленная выше задача отбора может выглядеть так: "C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT Path USING Attributes AS Attr FROM E:\Песочница\0101\*.* WHERE Attr LIKE '__S______' OR Attr LIKE '___H_____' OR Attr LIKE '____R____'" -i:FS -q:ON -oCodepage:1251 -recurse:0 "C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT Path USING STRCNT(REPLACE_CHR(Attributes, 'SHR', '*'), '*') AS AnyAttrOfSHR FROM E:\Песочница\0101\*.* WHERE AnyAttrOfSHR > 0" -i:FS -q:ON -oCodepage:1251 -recurse:0 |
|||
Отправлено: 00:53, 20-12-2011 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Flash - [решено] PQI 8GB - не дает "закинуть файлы", "форматнутся", как реанимировать? | HarrysFerrarievich | Накопители (SSD, HDD, USB Flash) | 0 | 18-11-2011 10:43 | |
Разное - Как удалить скрытые компоненты в Мастере "Установки и удаления программ" | GenAleks | Microsoft Windows 2000/XP | 9 | 09-10-2011 19:54 | |
Разное - В меню "сервис" "свойства папки" не могу настроить скрытые файлы | Antoni106 | Microsoft Windows 2000/XP | 1 | 15-12-2009 21:32 | |
Интерфейс - Как убрать сообщения"папка содержит скрытые файлы" | lolik119 | Microsoft Windows 2000/XP | 4 | 15-04-2009 06:03 | |
Интерфейс - Не включается "Показывать скрытые файлы и папки" | greenamateur | Microsoft Windows 2000/XP | 1 | 12-08-2007 11:37 |
|