|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 | |
|