Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 3

Автор: igor_andreev
Дата сообщения: 25.06.2007 11:01
vmix

Цитата:
forfiles под ХР и выше

C каких пор? Forfiles еще в ресурс ките для NT4.0 была. Ты проверь, она должна работать. Помнится, что-то из 2003 винды (с версией файла 5.2.XXXX) под 2000 не запускалось, но forfiles кажись работала. Нет вокруг сейчас ни одного компа с 2K, проверить не могу. Если версия forfiles, которую выложил Maza Faka не запуститься в 2K, возьми эту вер. 5.00.2134.1, она из Win 2000 Resource Kit, точно заработает. Пробелов только после аргумента не оставляй, /pC:\temp /m*.*...
Автор: vmix
Дата сообщения: 25.06.2007 12:11
igor_andreev
Спасибо, эта подошла.
Автор: Maza Faka
Дата сообщения: 25.06.2007 13:28
vmix

Цитата:
Спасибо, эта подошла.

А код подошёл?
Автор: vmix
Дата сообщения: 25.06.2007 17:54
Maza Faka
Вот такой код подошел:
@echo off
forfiles -pc:\temp -m*.* -d-14 -s -c"cmd /c del /q /f @FILE"
Thanx!


Добавлено:
А если нужен отчет и в путях к файлам есть пробелы, то такой код:
@echo off
forfiles -pc:\temp -m*.* -d-14 -s -c"cmd /c echo @PATH\@FILE >>c:\report.txt 2>&1 & del /q /f ""@FILE"""
Автор: GORA2
Дата сообщения: 26.06.2007 08:00
Здравствуйте всем!
Можно ли из батника узнать "язык" системы в Региональных стандартах? Интересует только русский или нет. Если можно, то как?
Автор: 01MDM
Дата сообщения: 26.06.2007 08:55
GORA2

Цитата:
Можно ли из батника узнать "язык" системы



Код:
for /f "delims=" %%i in ('systeminfo ^| find "Язык"') do (echo %%i)
Автор: GORA2
Дата сообщения: 26.06.2007 09:05
01MDM
Не прокатило.
1 Нет в английской винде слова "Язык". Соответственно и никакого echo не было
2 Уж больно долго ищет это слова. А пошустрее ни как нельзя?
Автор: 01MDM
Дата сообщения: 26.06.2007 09:17
Набери systeminfo и посмотри как там пишется "Language" или просто "Lang"
Автор: GORA2
Дата сообщения: 26.06.2007 09:25
01MDM
А что это даст!?
Пункт два это не изменит (очень долго запускается).
Да и подставлять "Lang" вместо "Язык" не выход. Я не знаю в какой системе будет запушен батник, а цель и состоит в том, чтоб это узнать! Заранее писать "Lang" или "Язык" - это гадать на кофейной гуще .
Спасибо, но кажется я нашел (есть идея) как это сделать проще
Автор: kolyakolyakolya
Дата сообщения: 26.06.2007 09:30
как bat-файлом переместить файл с CD в program files
Автор: KapralBel
Дата сообщения: 26.06.2007 09:37
kolyakolyakolya
Может скопировать?
Переместить с СД нельзя

а копировать
Copy <CD>:\File.txt "C:\Program Files\Folder\"
Автор: kolyakolyakolya
Дата сообщения: 26.06.2007 09:46
как bat-файлом скопировать файл с CD в program files без указания c:
bat-файл находится на cd
скопирвать нужно в папку program files но не указывать и c:
Автор: ViSiToR
Дата сообщения: 26.06.2007 09:58
kolyakolyakolya

Цитата:
скопирвать нужно в папку program files но не указывать и c:



Код: Copy "<CD>:\File.txt" "%ProgramFiles%\Folder\"
Автор: KapralBel
Дата сообщения: 26.06.2007 10:23
Что бы работало не зависимо от имени СД
Copy "%~d0\File.txt" "%ProgramFiles%\Folder\"
Автор: Maza Faka
Дата сообщения: 26.06.2007 10:29
GORA2

Цитата:
узнать "язык" системы


Код:
@echo off
for /f "tokens=3" %%a in (
'reg query "HKCU\Control Panel\International" ^| find /i "sLanguage"') do echo %%a
Автор: popalka
Дата сообщения: 26.06.2007 11:28
Вот такая задачка:

Большая сеть, админится через AD. У каждого пользователя нужно создать папку в корне системного диска "C:\Folder", и дать пользователю права на запись в эту папку.
Проблема в том, что сейчас у многих пользователей на компьютерах есть эта папка "C:\Folder", но прав на запись в этут папку нет.

Не дайте протереть единственные рабочие туфли до дыр, помогите, плз. Или куда копать укажите =))
Автор: KapralBel
Дата сообщения: 26.06.2007 11:48
popalka

Код: @Echo Off
MD C:\Folder
Cacls C:\Folder /e /c /p "Домен\Пользователь:F"
Автор: popalka
Дата сообщения: 26.06.2007 12:57
KapralBel
о, спасибо, попробую
upd: помогло =)))
Автор: ezegjda
Дата сообщения: 28.06.2007 19:01
подскажите, как в бат-файле получить результат работы программы не на экран, а в переменную
где-то прочел фразу про то что можно перенаправить вывод в файл/принтер/переменную, но реальзовать отправку нужную мне не получилось
Автор: Elroir
Дата сообщения: 28.06.2007 19:07
ezegjda
Если программа выводит только одну строку, тогда так:

Код:
for /f "tokens=*" %%a in ('program.exe') do set "var=%%a"
Автор: ezegjda
Дата сообщения: 28.06.2007 19:28
Elroir
спасибо, работает
да возвращает только одну строку


Код: set "var=%%a"
Автор: Elroir
Дата сообщения: 28.06.2007 19:33
ezegjda

Цитата:
а зачем тут двойные кавычки?

Можно без них. Просто, когда копируешь код из форума, в конце строк добавляется лишний пробел. Чтобы этот пробел не мешал, я и поставил кавычки - с ними в переменную var запишется только вывод программы.
Автор: GORA2
Дата сообщения: 29.06.2007 13:37
Здравствуйте всем!
Задавал уже этот вопрос, но видимо не верно сформулировал.
Можно ли из батника узнать какая Windows установлена? Русская, не русская, не русская, но с MUI? Как это сделать?
Вариант с
Код: @echo off
for /f "tokens=3" %%a in (
'reg query "HKCU\Control Panel\International" ^| find /i "sLanguage"') do echo %%a
Автор: Nagual
Дата сообщения: 29.06.2007 14:15
а вот такая задачка нарисовалась
нужно получить имя пользователя и название организации из "свойств системы", не %username%, может кто сталкивался?
Автор: Elroir
Дата сообщения: 29.06.2007 14:45
Nagual

Код: @echo off
setlocal
for /f "tokens=2*" %%a in ('"reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v RegisteredOwner | find /i "RegisteredOwner""') do set "owner=%%b"
for /f "tokens=2*" %%a in ('"reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v RegisteredOrganization | find /i "RegisteredOrganization""') do set "org=%%b"
echo Owner=%owner%
echo Organization=%org%
Автор: Maza Faka
Дата сообщения: 29.06.2007 15:10
Nagual

Код:
@echo off
for /f "tokens=3*" %%a in (
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" ^| ^
Findstr "Registered"') do (
if not defined organization set organization=%%a%%b
set userName=%%a%%b)
Echo %organization% %userName%
pause
Автор: igor_andreev
Дата сообщения: 29.06.2007 15:24
GORA2

Цитата:
не проходит

Не проходит - понятие растяжимое. Что пишет? Или из-за W2K не работает, reg.exe отсутствует? В Win 2000 можно сделать

Код:
regedit /ea temp.reg "HKEY_CURRENT_USER\Control Panel\International"
Автор: Nagual
Дата сообщения: 29.06.2007 15:55
Elroir
твой код кажет все, кроме некоторых симоволов например у меня ^ не отобразил,
только не хватает chcp 1251>nul для русской винды
в остальном все ок спс
Maza Faka
то же самое
в остальном все ок спс
Автор: Elroir
Дата сообщения: 29.06.2007 16:09
Nagual
Мне как-то не приходило в голову, что в имени пользователя или названии организации может быть символ "^".
Автор: ViSiToR
Дата сообщения: 29.06.2007 16:28
Nagual

Цитата:
например у меня ^ не отобразил

Можно попробовать подставить два таких символа...


Код: Set "organization=%organization:^=^^%"
echo %organization%

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.