Показать полную графическую версию : [решено] Нужно переписать скрипт - сделать скрытые папки видимыми
RomanLis
01-06-2012, 16:50
Здравствуйте! Имею такой скрипт, достал не помню где, он делает скрытые папки видимыми. Можно ли его так переписать, чтобы он действовал на все файлы и папки в данной папке и во всех подпапках и подпапках подпапок?
for /F "tokens=*" %%i in ('dir /a:hs /b') do attrib -h -s "%%i"
Спасибо!
megaloman
01-06-2012, 17:00
Вот решение, ранее представленное решение зачеркнул, оно ненадёжно, из за того, что dir /a:hs корректно не отрабатывает для указанных атрибутов ATTRIB -H -S /s /d *.*
@Echo Off
FOR /F "usebackq delims=" %%i IN (`dir /a:hs /b /S`) DO attrib -h -s "%%i" Смысл ключей команды Dir смотрим по команде dir /? набранной в командном окне
RomanLis
01-06-2012, 17:02
Не работает, причём ни папки, ни файлы не открывает.
Проверил и на рабочем столе с ярлыком, и с папкой в program files. Ничего не изменилось после запуска, причём делал всё от имени администратора.
megaloman
01-06-2012, 20:48
Извините, но вы меня обманули :biggrin: -Ваш скрипт у меня не работает, а я Вам поверил и добавил только один ключ. Ответ исправил (см. выше), проверил, у меня он работает. естественно, если это не строка в командном окне, а строка в батнике.
Извините, но вы меня обманули »Не благодарное это дело править корявые скрипты.
Не обращай внимания.
megaloman
01-06-2012, 21:11
yurfed, Однако! На одной машине (Win7) скрипт RomanLis работает, а на другой (Win XP) не хочет. Так что, оказывается, не всё очевидно ... Я не совсем прав :(
На одной машине (Win7) скрипт RomanLis работает, а на другой (Win XP) не хочет. »Ну если он не хочет, то он что то, да напишет в своё оправдание. С библиотеками всё в порядке?
megaloman
01-06-2012, 21:35
yurfed, Пока не понял, в чем дело. Но зато выяснил, что конструкция dir /a:hs /b неработоспособна, она не видит все файлы. И вообще, в предложенной задаче никакого смысла нет для использования for. Если обрабатываются все вложенные папки и подпапки и файлы в них в директории, где батник, хватит одной простой команды
ATTRIB -H -S /s /d *.*
Еще раз убедился, не лезь в чужой код, пиши свой.
Но зато выяснил, что конструкция dir /a:hs /b неработоспособна, она не видит все файлы. »
megaloman, а так:
dir /a /s /b
?
RomanLis
02-06-2012, 10:31
Спасибо :)
Я вначале сказал, что ничего об этом коде не знаю, так что извините)
megaloman
02-06-2012, 11:03
Iska, Насколько я понимаю, идея dir /a:hs была в том, чтобы отобразить файлы с атрибутами как h так и s, и никакие иные.
На диске C: проделал:
dir /a:h /s получил 563 файла
dir /a:s /s получил 566 файла
dir /a:hs /s получил 261 файла
dir /a:sh /s получил 261 файла
То есть изначально идея была неверна
dir /a - выдаст все файлы, невзирая на атрибуты
Iska, Насколько я понимаю, идея dir /a:hs была в том, чтобы отобразить файлы с атрибутами как h так и s, и никакие иные. »
Осознал.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.