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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Имена папок и файлов определённого каталога в ТХТ файл .

Ответить
Настройки темы
CMD/BAT - [решено] Имена папок и файлов определённого каталога в ТХТ файл .

Ветеран


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

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


Привет.
Нужен cmd/dat файл, который сможет копировать все подряд имена папок и файлов определённого каталога в текстовый файл.

Отправлено: 20:42, 12-02-2014

 

Ветеран


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

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


Код: Выделить весь код
>"Путь\Файл.txt" dir /b /a "Путь"
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:04, 12-02-2014 | #2



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

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


Ветеран


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

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


Iska, спасибо.
а так можно?
Код: Выделить весь код
:: Отображение имён папок и файлов каталога Music в текстовом файле
@echo off
chcp 1251>nul
set "path=G:\Music"
set "file_name=list_musuc_%DATE%.txt"
>"%path%\%file_name%" dir /b /a "%path%"
ещё вопросы:
как исключить скрытые и системные файлы?
как сделать по умолчанию не "path=G:\Music", а папка из которой запускается батник?

Последний раз редактировалось qqwwaass, 13-02-2014 в 00:29.


Отправлено: 00:11, 13-02-2014 | #3


Ветеран


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

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


Цитата qqwwaass:
а так можно? »
Да. Кодировка результирующего файла будет ANSI/1251.

Цитата qqwwaass:
как исключить скрытые и системные файлы? »
Убрать параметр «/a». Вы выше писали:
Цитата qqwwaass:
все подряд имена »
посему я его добавил.

Цитата qqwwaass:
как сделать по умолчанию не "path=G:\Music", а папка из которой запускается батник? »
«папка из которой запускается батник» — что понимается: 1) текущий, рабочий каталог или 2) каталог, в котором находится сам пакетный файл?
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:20, 13-02-2014 | #4


Ветеран


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

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


наверно так
Цитата Iska:
2) каталог, в котором находится сам пакетный файл? »
чтобы универсальный получился, т.е. поместил в нужную папку и запустил от туда пакетный файл, а он в ней же и создаёт "лист_дата.тхт".

Отправлено: 01:45, 13-02-2014 | #5


Ветеран


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

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


Цитата qqwwaass:
т.е. поместил в нужную папку и запустил от туда пакетный файл, »
Стало быть не «папка из которой запускается батник», а папка, в которой находится пакетный файл. Побочным эффектом такого некорректного использования будет появление в списке имени самого пакетного файла.
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251

set "sPath=%~dp0"
set "sFileName=list_musuc_%DATE%.txt"
>"%sPath%%sFileName%" dir /b "%sPath%"

>nul chcp 866

endlocal
exit /b 0
И никогда, никогда не используйте всуе не по назначению переменную окружения «PATH»!


Правильным же использованием считается «мухи отдельно, котлеты отдельно» — пакетный файл лежит в одном месте, работает везде, где потребно. Вместо того, чтобы плодить его копии где ни попадя, держите пакетный файл в одном месте и перетаскивайте на него искомую папку. Такой пакетный файл может выглядеть, например, следующим образом:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=%~1

if defined sSourceFolder (
	>nul chcp 1251
	>"%sSourceFolder%\list_musuc_%DATE%.txt" (
		for /f "usebackq delims=" %%i in (
			`dir /b "%sSourceFolder%"`
		) do if "%%~i" neq "list_musuc_%DATE%.txt" echo %%~i
	)
	>nul chcp 866
) else (
	echo Usage: %~nx0 ^<Source folder^>
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:04, 13-02-2014 | #6


Ветеран


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

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


Цитата Iska:
«мухи отдельно, котлеты отдельно» »
да, удобно, но запускать через планировщик не получится.

а вот здесь,
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>nul chcp 1251

set "sPath=%~dp0"
set "sFileName=list_musuc_%DATE%.txt"
>"%sPath%%sFileName%" dir /b "%sPath%"

>nul chcp 866

endlocal
exit /b 0
если bat-ник, и создаваемому файлу(list_musuc_%DATE%.txt) присвоить attrib +h, то в списке его не будет. Только не знаю как сюда вписать этот атрибут.

Отправлено: 11:00, 13-02-2014 | #7


Ветеран


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

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


Цитата qqwwaass:
да, удобно, но запускать через планировщик не получится. »
Что ж, либо так, либо вариант без аргументов через планировщик. Кстати, вариант с аргументами удобно использовать через контекстное меню "Отправить". Поместите ярлык для зтого пакетного файла (или сам пакетный файл) в папку "SendTo" и пользуйтесь.


Цитата qqwwaass:
если bat-ник, и создаваемому файлу(list_musuc_%DATE%.txt) присвоить attrib +h, то в списке его не будет. Только не знаю как сюда вписать этот атрибут. »
Сюда:
Код: Выделить весь код
set "sFileName=list_musuc_%DATE%.txt"
attrib +h "%sPath%%sFileName%"
attrib +h "%~f0"

Отправлено: 13:52, 13-02-2014 | #8


Ветеран


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

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


Цитата Georgio:
Сюда: »
В этот момент его ещё нет.

Отправлено: 18:45, 13-02-2014 | #9


Ветеран


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

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


Цитата Iska:
В этот момент его ещё нет. »
Проблема ещё в том, что если к этому моменту создать этот файл, то в скрытый файл ничего не будет записываться.

Отправлено: 19:44, 13-02-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Имена папок и файлов определённого каталога в ТХТ файл .

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Исчезли имена у папок и файлов в проводнике Digi Microsoft Windows Vista 3 15-05-2018 10:58
Любой язык - Сравнение списка файлов и каталога с файлами с копированием файлов из каталога jastreb83 Скриптовые языки администрирования Windows 0 10-04-2013 09:56
Разное - Смена целевого каталога поиска в "Поиске файлов и папок" putinka Microsoft Windows 2000/XP 3 04-08-2012 20:40
CMD/BAT - [решено] Дописать в тхт файл mrtwister Скриптовые языки администрирования Windows 2 04-05-2012 18:07
CMD/BAT - [решено] Как имена файлов расположенных в одной папке записать в текстовый файл? Nun-Nun Скриптовые языки администрирования Windows 6 12-05-2009 21:44




 
Переход