powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите написать bat'ник
6 сообщений из 6, страница 1 из 1
Помогите написать bat'ник
    #34189065
Wr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть такова: В папке лежит файл konverter.exe, куча файлов *.txt и *.dbf
konverter.exe - конвертит txt в dbf
в командной строке konverter.exe name.txt name.dbf
т.е. указываешь имя существующего файла txt и он создаёт файл dbf с заданным именем
Надо. чтобы пользователь, запустил батник и старые dbf стёрлись, создались новые, после чего txt потёрлись

Это получается что-то вроде

del *.dbf

konverter.exe name.txt name.dbf

del *.txt

ток фишка в том, что я не знаю, сколько там файлов txt и их имён (каждый раз по разному)

Сможет кто-нибудь помочь?


ЗЫ: у меня была идёя сделать что-то вроде
for %%a in (*.txt) do konverter.exe %%a %%a.dbf
ток проблемма, что в таком случае %%a - это не только имя файла, но и его расширение.
и получается так
konverter.exe name.txt name.txt.dbf
а konverter.exe не дурак, ругается на name.txt.dbf
Вот как бы, избавиться от расширения txt и получиь ток имя.
...
Рейтинг: 0 / 0
Помогите написать bat'ник
    #34189321
WrСуть такова: В папке лежит файл konverter.exe, куча файлов *.txt и *.dbf
konverter.exe - конвертит txt в dbf
в командной строке konverter.exe name.txt name.dbf
т.е. указываешь имя существующего файла txt и он создаёт файл dbf с заданным именем
Надо. чтобы пользователь, запустил батник и старые dbf стёрлись, создались новые, после чего txt потёрлись

Это получается что-то вроде

del *.dbf

konverter.exe name.txt name.dbf

del *.txt

ток фишка в том, что я не знаю, сколько там файлов txt и их имён (каждый раз по разному)

Сможет кто-нибудь помочь?


ЗЫ: у меня была идёя сделать что-то вроде
for %%a in (*.txt) do konverter.exe %%a %%a.dbf
ток проблемма, что в таком случае %%a - это не только имя файла, но и его расширение.
и получается так
konverter.exe name.txt name.txt.dbf
а konverter.exe не дурак, ругается на name.txt.dbf
Вот как бы, избавиться от расширения txt и получиь ток имя.
Посмотри тут:
http://www.rsdn.ru/article/winshell/batanyca.xml
Это поможет тебе решить твою проблему...
...
Рейтинг: 0 / 0
Помогите написать bat'ник
    #34191578
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WrВот как бы, избавиться от расширения txt и получиь ток имя.
Код: plaintext
for %%a in (*.txt) do konverter.exe %%a %%~na.dbf
...
Рейтинг: 0 / 0
Помогите написать bat'ник
    #34195217
Wr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous WrВот как бы, избавиться от расширения txt и получиь ток имя.
Код: plaintext
for %%a in (*.txt) do konverter.exe %%a %%~na.dbf

Почитал доки, из ссылки по предыдущему посту..
тож думал, что всё так просто.
%%~na - имя файла
%%~xa - расширение файла.

Ток вот проблемка, вместо filename.dbf получается файл %~na.dbf
Соответственно, этот файл содержит результат последнего конвертирования, а все предыдущие затираются.
...
Рейтинг: 0 / 0
Помогите написать bat'ник
    #34195806
Wr andrey_anonymous WrВот как бы, избавиться от расширения txt и получиь ток имя.
Код: plaintext
for %%a in (*.txt) do konverter.exe %%a %%~na.dbf

Почитал доки, из ссылки по предыдущему посту..
тож думал, что всё так просто.
%%~na - имя файла
%%~xa - расширение файла.

Ток вот проблемка, вместо filename.dbf получается файл %~na.dbf
Соответственно, этот файл содержит результат последнего конвертирования, а все предыдущие затираются.

Посмотри как я сделал (правда по другому поводу). Может поможет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
@echo off
@echo 'Обязательно устанавливаем отложенное раскрытие ссылок'
setlocal enabledelayedexpansion

for %%I in (tadsl*.*) do (
set CURRENTFILE=%%~nxI
set Sendfile=!CURRENTFILE!
set StopFile=C!Sendfile!
call :send 
)

echo "End bat-file"
exit

:send
@echo off
@echo 'Формируем скрипт для ftp-сервера'
echo 'Start ftp connection...'
set Outputfile=script.ftp
echo ^" >!Stopfile!
echo open xxx.xxx.x.xxx  21   >%Outputfile%
echo user xxxxxxxxxx xxxxxxxxxxxxxxxxxxx>>%Outputfile%
echo binary >>%Outputfile%
echo cd ^/ >>%Outputfile%
echo put !Sendfile! >>%Outputfile%
echo put !Stopfile! >>%Outputfile%
echo bye >>%Outputfile%
@echo 'Запускаем скрипт на исполнение'
ftp -n -s:script.ftp 
@echo 'Удаляем переданные файлы'
del !Sendfile!
del !Stopfile!
echo 'End ftp connection...'
exit /b
Все основано на статье по ссылке...
...
Рейтинг: 0 / 0
Помогите написать bat'ник
    #34197924
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WrПочитал доки, из ссылки по предыдущему посту..
тож думал, что всё так просто.
Видимо, плохо читали.
Наберите в командной строке "help for" и почитайте еще раз :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
C:\temp\ 1 >dir /b
 1 .txt
 2 .txt
2old.dbf
 3 .txt
3old.dbf
 4 .txt
4old.dbf
 5 .txt
5old.dbf
convert.bat

C:\temp\ 1 >type convert.bat
@echo off
del /f *.dbf
for %%i in (*.txt) do copy /b %%i %%~ni.dbf

C:\temp\ 1 >convert.bat
Скопировано файлов:          1 .
Скопировано файлов:          1 .
Скопировано файлов:          1 .
Скопировано файлов:          1 .
Скопировано файлов:          1 .

C:\temp\ 1 >dir /b
 1 .dbf
 1 .txt
 2 .dbf
 2 .txt
 3 .dbf
 3 .txt
 4 .dbf
 4 .txt
 5 .dbf
 5 .txt
convert.bat

C:\temp\ 1 >
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите написать bat'ник
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]