Войти

Показать полную графическую версию : [решено] Нужно переписать скрипт - сделать скрытые папки видимыми


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: -Ваш скрипт у меня не работает, а я Вам поверил и добавил только один ключ. Ответ исправил (см. выше), проверил, у меня он работает. естественно, если это не строка в командном окне, а строка в батнике.

yurfed
01-06-2012, 20:59
Извините, но вы меня обманули »Не благодарное это дело править корявые скрипты.
Не обращай внимания.

megaloman
01-06-2012, 21:11
yurfed, Однако! На одной машине (Win7) скрипт RomanLis работает, а на другой (Win XP) не хочет. Так что, оказывается, не всё очевидно ... Я не совсем прав :(

yurfed
01-06-2012, 21:22
На одной машине (Win7) скрипт RomanLis работает, а на другой (Win XP) не хочет. »Ну если он не хочет, то он что то, да напишет в своё оправдание. С библиотеками всё в порядке?

megaloman
01-06-2012, 21:35
yurfed, Пока не понял, в чем дело. Но зато выяснил, что конструкция dir /a:hs /b неработоспособна, она не видит все файлы. И вообще, в предложенной задаче никакого смысла нет для использования for. Если обрабатываются все вложенные папки и подпапки и файлы в них в директории, где батник, хватит одной простой команды

ATTRIB -H -S /s /d *.*

Еще раз убедился, не лезь в чужой код, пиши свой.

Iska
02-06-2012, 05:40
Но зато выяснил, что конструкция 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
02-06-2012, 17:02
Iska, Насколько я понимаю, идея dir /a:hs была в том, чтобы отобразить файлы с атрибутами как h так и s, и никакие иные. »
Осознал.




© OSzone.net 2001-2012