|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Применить ко всем файлам каталога. |
|
CMD/BAT - Применить ко всем файлам каталога.
|
Новый участник Сообщения: 13 |
Добрый день! подскажите решение вот такого вопроса:
Есть каталог например С:\DB\Post В нем файлы. Нужно в каждм файле заменить 800 на 080. написала для одногор файла: @ECHO OFF setlocal enabledelayedexpansion SET ifile=1.txt SET tfile=%ifile%.tmp SET find=800 SET replace=080 IF EXIST %tfile% DEL /Q %tfile% FOR /F "tokens=* delims=, " %%a IN (%ifile%) DO ( set line=%%a set LINE=!LINE:%find%=%replace%! echo !line!>> %tfile% ) MOVE /Y %tfile% %ifile% EXIT /B 0 Как изменить код, чтобы применялось не только для файла 1.txt, но и для остальных файлов в папке? |
|
Отправлено: 08:13, 20-01-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата luda-chel:
Наподобие: |
|
Отправлено: 08:26, 20-01-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Спасибо за ответ.
Но ведь PowerShell для сервера. А мне с моего рабочего компьютера нужно. (про PowerShell почитала, ниразу не пользовалась) А вот если через bat? как? |
Отправлено: 08:49, 20-01-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата luda-chel:
Цитата luda-chel:
Сохраните приведённый код в файл с расширением «.ps1», заменив выделенное на Ваши данные. Однократно разрешите в PowerShell исполнение неподписанных скриптов (если не сделали этого ранее). Затем можете пробовать исполнять (лучше сделать копию каталога Ваших файлов и пробовать именно на копии). Цитата luda-chel:
![]() |
|||
Отправлено: 10:29, 20-01-2015 | #4 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Не надоело: каждый день открытия ![]() ![]() @echo off set "dir=C:\DB\Post" set find=800 set replace=080 pushd "%dir%" for /f "delims=" %%A in ('"2>nul dir/a-d/b"') do call:sub "%%A" popd& exit/b 0 :sub setlocal enabledelayedexpansion for /f "tokens=* delims=, " %%a in ('type %1^& del %1') do ( set line=%%a >>%1 echo(!line:%find%=%replace%! ) endlocal& goto:eof |
||
Отправлено: 11:50, 20-01-2015 | #5 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Iska, да. я уже почитала поглубже. поняла про PowerShell.
Georgio, попробую сейчас ваше предложение. Мне тут на работе расскрыли полностью проблему. Оказывается: 1. Файлы переносятся из одной папки (1) во временную (Temp) 2. в них меняется информация 3. Переносятсяв другую папку (2) Получается в папке 1 их больше нет. Но сервер каждые 1 минуту выкладывает в папку 1 новые файлы. Если сделать цикл, и постоянно будет происходить перемещение, не получится ли так, что bat файл начнет перемещать файлик которые ещё не скопировался в 1 папку. имею ввиду совместный доступ к файлу. Размер у них разный, названия то же, поэтому критерий выбрать никак нельзя. Можно ли с помощью bat сделать ещё проверку занят ли файл каким то процессом (в нашем случае, перенос с сервера в папку 1) ? вот как то так... |
Отправлено: 13:41, 20-01-2015 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата luda-chel:
По-хорошему, нужно добавлять в то же задание/приложение, которое осуществляет выкладку файла, добавить вызов скрипта/пакетного файла для замены содержимого этого одного файла. |
|
Отправлено: 16:45, 20-01-2015 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как применить настройки вида папок ко всем папкам | alexa___ | Microsoft Windows Vista | 8 | 22-12-2021 18:11 | |
CMD/BAT - Добавить символ ко всем файлам в папке | csusha | Скриптовые языки администрирования Windows | 5 | 17-09-2010 17:17 | |
Интерфейс - Почему в "Параметрах папки" кнопка "Применить ко всем папкам" неактивна? | edixxx | Microsoft Windows 7 | 2 | 19-05-2009 17:50 | |
Доступ - Нет доступа ко всем файлам и каталогам с определённым именем | zussul | Microsoft Windows 2000/XP | 1 | 30-08-2007 19:11 |
|