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

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

Автор: res2001
Дата сообщения: 14.09.2010 11:19
bomzzz
попробую что-нить сделать
Автор: bomzzz
Дата сообщения: 14.09.2010 11:20
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=260#17
вот тута видишь он вообще без локала обошелся

Добавлено:
надо было наверно тоже создать временную папку и туда все перепаковать а потом назад вытащить. ну я уже счетчик не буду делать. у меня видишь строка заремарина я еще ее испытываю.
Автор: king_stiven
Дата сообщения: 14.09.2010 11:41

Цитата:
только он не файлы должен считать а файлы с одинаковыми именами и разными расширениями

Приведи пример, исчерпывающий, с именами а не общими фразами.
Автор: bomzzz
Дата сообщения: 14.09.2010 11:45
вот картинка
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=240#15
вот описание
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=200#20
вот два рабочих кода
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=280#18
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=260#16

уже не знаю куда подробнее

Добавлено:
файл SLYCHAINOEIMYA.ZIP его описание SLYCHAINOEIMYA.ZIP.TXT они должны очутиться в папке SLYCHAINOEIMYA
Автор: res2001
Дата сообщения: 14.09.2010 11:53
bomzzz
Держи без setlocal enabledelayedexpansion

Код: @echo off
set "indir=c:\2\"
set "outdir=c:\1\"
set "fnum="
rem обрабатываем все кроме файлов *.txt
call :work ".txt"
rem обрабатываем .txt
call :work ".txt.txt"
exit

:work
for /f "tokens=*" %%a in ('DIR /A-D /B /O:N %indir% ^| find /v "%~1" ') do (
call :getdirname "%%~na"
call md "%outdir%%%getdirname%%"
2>nul call move "%indir%%%a" "%outdir%%%getdirname%%\"
2>nul call move "%indir%%%a.txt" "%outdir%%%getdirname%%\"
)
exit /b

rem Имя каталога в переменной !getdirname!
:getdirname
if not defined fnum (set "fnum=0" & set "getdirname=%~1") else (set /a "fnum+=1" & call set "getdirname=%~1-%%fnum%%")
if exist "%outdir%%getdirname%\" (call :getdirname "%~1") else set "fnum="
exit /b
Автор: bomzzz
Дата сообщения: 14.09.2010 11:55
res2001
не работает
Автор: res2001
Дата сообщения: 14.09.2010 11:56
А так?
Автор: bomzzz
Дата сообщения: 14.09.2010 11:59
работает но с таким именем обкакался %%%.txt . но файлы не затер просто не перенес

Добавлено:
может где то кавычки забыл???
Автор: res2001
Дата сообщения: 14.09.2010 12:01
bomzzz
Зато с ! работает. А с % и будет обкакиваться постоянно. Как это обойти - х.з.

Добавлено:
% управляющий символ в батниках не зависимо от наличия setlocal enabledelayedexpansion.
Разве что анализировать каждый символ имени файла и экранировать %.
Автор: king_stiven
Дата сообщения: 14.09.2010 12:03
bomzzz
Дано:
папка без подпапок, в ней куча файлов
Надо:
файлы вида SLYCHAINOEIMYA.ZIP и SLYCHAINOEIMYA.ZIP.TXT переместить в папку SLYCHAINOEIMYA
файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA
?
Автор: bomzzz
Дата сообщения: 14.09.2010 12:04
у мине с любыми знаками работает. ну может я какие то недогадался испытать

Добавлено:
файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA[1] естевтвенна. потому что имя уже занято. на картинке все виндо

Добавлено:
Автор: res2001
Дата сообщения: 14.09.2010 12:15
bomzzz

Цитата:
у мине с любыми знаками работает. ну может я какие то недогадался испытать

У тебя работает, потому что нет setов и подпрограмм.
Автор: king_stiven
Дата сообщения: 14.09.2010 12:17
Кстати, чем рисуются такие картинки?
Дано:
папка без подпапок, в ней куча файлов
Надо:

файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA
файлы вида SLYCHAINOEIMYA.abc и SLYCHAINOEIMYA.abc.TXT переместить в папку SLYCHAINOEIMYA[1]
...
файлы вида SLYCHAINOEIMYA.xyz и SLYCHAINOEIMYA.xyz.TXT переместить в папку SLYCHAINOEIMYA[номер согласно счётчику от SLYCHAINOEIMYA.abc]
?
Автор: bomzzz
Дата сообщения: 14.09.2010 12:17
да точно. без сета вообще обойтись не получица

Добавлено:
king_stiven
ну да. а как еще. Даунлоад Мастер так файлы закачивает и создает файл описаний, но он не умеет распихивать это все по папкам, только групировать по типам файлов

Добавлено:
res2001
http://downloadmaster.ru/forum/viewtopic.php?f=2&t=12727&p=43705#p43705

Добавлено:
res2001
так на прочность я его уже хорошо испытал у меня тут уже больша группа файлов для испытаний и батники для создания описаний
Автор: res2001
Дата сообщения: 14.09.2010 12:47
bomzzz
Пока с процентами в имени справится не удается.
Автор: res2001
Дата сообщения: 14.09.2010 13:00
bomzzz
проценты победил:

Код: @echo off
set "indir=c:\2\"
set "outdir=c:\1\"
set "fnum="
rem обрабатываем все кроме файлов *.txt
call :work ".txt"
rem обрабатываем .txt
call :work ".txt.txt"
exit

:work
for /f "tokens=*" %%a in ('DIR /A-D /B /O:N %indir% ^| find /v "%~1" ') do (
set "getdirname=%%~na"
set "fname=%%a"
call :getdirname
call md "%outdir%%%getdirname%%"
2>nul call move "%indir%%%fname%%" "%outdir%%%getdirname%%\"
2>nul call move "%indir%%%fname%%.txt" "%outdir%%%getdirname%%\"
)
exit /b

rem Имя каталога в переменной %%getdirname%%
:getdirname
if not defined fnum (set "fnum=0" & call set "dname=%%getdirname%%") else (set /a "fnum+=1" & call set "dname=%%getdirname%%-%%fnum%%")
if exist "%outdir%%dname%" (call :getdirname) else (set "fnum=" & call set "getdirname=%%dname%%" & set "dname=")
exit /b
Автор: Alloran
Дата сообщения: 14.09.2010 13:08
wolf0425

Цитата:

а эти юзера залогинены в этот момент?  

да.

Цитата:

и дело вообще где происходит - на терминальном сервере?

да.


Цитата:
 
что-то мне кажется, что уже запущенной 1С совершенно пофигу снос настроек в регистри, а вот у следующей 1С отобрать настройки можно попробовать.


для текущей 1с и не нужно - вслед за сносом записей из реестра последует один большой reset )

так что главный вопрос сводится к тому, как отобрать у залогиненого юзера веточку реестра

Автор: res2001
Дата сообщения: 14.09.2010 13:20
Alloran
как вариант - запускать в шедулере у юзера батник который по выставленному флагу (наличию файла с определенным именем в определенном месте) производит удаление ключа в реестре.
Под админом просто создаешь файл флага.
Автор: faithful
Дата сообщения: 14.09.2010 14:54
Alloran

Цитата:
Нужно удалять ключи в HKCU _другого_ пользователя.
reg load не подойдет, ибо оно не позволяет подключить куст, если его владелец залогинен и файл используется..

Или, как вариант, нуден способ запускать батники в терминальной сессии другого пользователя)

Так подойдет?

Код: @echo off
color 9F

echo.y|reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" "%~dpn0.reg" >nul 2>^&1
for /f "tokens=7 delims=]\\" %%k in ('more %~dpn0.reg^| find "\S-"') do reg delete HKEY_USERS\%%k\Software\1C\1Cv7\7.7\Titles /f >nul 2>^&1
Автор: sergioser
Дата сообщения: 14.09.2010 15:15
wolf0425

Цитата:
sergioser
TYPE MY.TXT | FIND /v "мас адрецк" && echo not found

огромное спасибо
то что надо
как всегда все просто
Автор: bomzzz
Дата сообщения: 14.09.2010 16:32
res2001
работкаит

Добавлено:
res2001
а почему я в тексте батника CHCP не вижу, он с рускими букафками дружит???

Добавлено:
дружит если их в тексте самого батника нет

Добавлено:
и еще такое замечание если пути 1 и 2 равны то он работает вроде

Добавлено:
не вру только с одним файлом если больше не работает
Автор: res2001
Дата сообщения: 14.09.2010 16:58
bomzzz

Цитата:
не вру только с одним файлом если больше не работает

Это ты о чем?

Цитата:
и еще такое замечание если пути 1 и 2 равны то он работает вроде

думаю должен работать.Сам не пробовал.

Добавлено:
Проверил - работает. И с 1 файлом и с большим количеством.
Автор: bomzzz
Дата сообщения: 14.09.2010 17:02
хм ща сеще рас попргобую

Добавлено:

пишет папка существует - не справляется с одинаковыми именами из за етага

Добавлено:
из за файла FAT12 имя которого равно имени папки

Добавлено:
я обошел это добавляя пробел слева к имени папки, с последующим переименованием

Добавлено:
res2001
а почему просто из за существования файла FAT12 не создается папка FAT12-1, видимо проверка идет на существоаание похожей папки, а можно проверять сразу существование и папки и файла. так получица????

Добавлено:
потом файла FAT12.asm следующему по алфавиту, создасться папка FAT12, а файлу FAT12.zip папка FAT12-2

Добавлено:
вот тута наверно
if exist "%outdir%%dname%\"
вот так
if exist "%outdir%%dname%"

Добавлено:
дадада. утверди только изменение.
Автор: king_stiven
Дата сообщения: 14.09.2010 17:50
bomzzz
Колись давай, чем рисунки делаешь.

Код: for /f "delims=" %%a in ('DIR /A-D /B /O:N') do (
if not "%%~xa"==".txt" (
if "%%~na"=="%%a" (
md "zzzz"
move "%%a" "zzzz"
move "%%a.txt" "zzzz"
ren "zzzz" "%%a"
) else if not exist "%%~na\" (
md "%%~na\"
move "%%a" "%%~na\"
move "%%a.txt" "%%~na\"
)
for /f "delims=" %%b in ('DIR /A-D /B /O:N') do (
if not "%%a"=="%%b" if not "%%~xb"==".txt" (
if "%%~na"=="%%~nb" (
set /a n+=1
set "k=%%b"
set "l=%%~nb"
call :ty
)
)
)
)
set n=
)
pause
:ty
md "%l%[%n%]"
move "%k%" "%l%[%n%]"
move "%k%.txt" "%l%[%n%]"
Автор: bomzzz
Дата сообщения: 14.09.2010 17:50

Цитата:

@echo off
set "indir=c:\Temp\"
set "outdir=c:\Temp\"
set "fnum="
rem обрабатываем все кроме файлов *.txt
call :work ".txt"
rem обрабатываем .txt
call :work ".txt.txt"
exit

:work
for /f "tokens=*" %%a in ('DIR /A-D /B /O:N %indir% ^| find /v "%~1" ') do (
set "getdirname=%%~na"
set "fname=%%a"
call :getdirname
call md "%outdir%%%getdirname%%"
2>nul call move "%indir%%%fname%%" "%outdir%%%getdirname%%\"
2>nul call move "%indir%%%fname%%.txt" "%outdir%%%getdirname%%\"
)
exit /b

rem Имя каталога в переменной %%getdirname%%
:getdirname
if not defined fnum (set "fnum=0" & call set "dname=%%getdirname%%") else (set /a "fnum+=1" & call set "dname=%%getdirname%%-%%fnum%%")
if exist "%outdir%%dname%" (call :getdirname) else (set "fnum=" & call set "getdirname=%%dname%%" & set "dname=")
exit /b


Добавлено:
king_stiven
постоянно спрашивают уже сто рас отвечал
UVScreenCamera
http://www.uvsoftium.ru/
GIF Movie Gear - с ключом не трудно найти
http://www.gamani.com/
UVScreenCamera без ключа создает только авишки, если найдешь камеру с ключом а тут на форуме ее где то выкладывали, то она все равно делает гифики гавнянского качества. кодек для авишки выбирать надо в ручную и смотреть качество из реально утсановленного на компьютере пакета кодеков, естественно выставлять надо максимальный битрейт. я делаю через Microsoft Video 1 у меня так самые лучшие картинки получаюца.

Добавлено:
king_stiven
работает но не спраивлся с таким именем Текстовый документ.txt
Автор: king_stiven
Дата сообщения: 14.09.2010 18:07
bomzzz
Ну

@echo off
chcp 1251 1>nul 2>nul

поставь вначале, надеюсь про паузу не спросишь чем заменить?
goto :eof




Колись давай, чем рисунки делаешь.
Автор: bomzzz
Дата сообщения: 14.09.2010 18:10
написал уже
какую паузу
дело не в путях с русскими именами а с фалйами или с русскими именами или с пробелами

Добавлено:
дело в файлах и с русскими именами и с пробелами

Добавлено:
а нет ни фига, дело в расширении txt


Цитата:

задача:
в одной папке лежат абсолютно случайные файлы, как то: файлы с расширениями, без расширений и возможно имеющие одинаковые имена, но имеющие разные расширения (или не имеющие). к некоторым файлам созданы файлы описаний, имя которых: <имя файла с раширением.txt>, в то же время текстовые файлы, находящиеся в папке, могут и не являться файлами описаний. надо распихать все файлы по папкам с названием - <имя файла без расширения>, файлы описаний должны попасть в папки своих файлов. ну и понятное дело во всем этом могут быть русские буквы. так как файлы абсолютно случайные, какие то ситуации могут в этой схеме быть и не упомянуты


Добавлено:
res2001
чё можно так подправить?
Автор: king_stiven
Дата сообщения: 14.09.2010 18:27
У меня работает
Автор: bomzzz
Дата сообщения: 14.09.2010 18:28
а у меня не работает
Автор: res2001
Дата сообщения: 14.09.2010 20:19
bomzzz

Цитата:
if exist "%outdir%%dname%"

Да, ты прав, это исправление позволит обходить вариант файлов без расширений.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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