Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/111: Рейтинг темы: голосов - 111, средняя оценка - 4.92
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380

Exit /b :eof не переходит в конец файла

28.10.2011, 22:14. Показов 21252. Ответов 97
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Исходя из темы данные команды должны переходить в конец, файла и эти команды используют что б выйти из так называемого цикла /b необходимо что б не закрыть окно бат файла.
На практике получается так что данная команда не выполняется так как нужно и вместо перехода в конец батника срабатывает и начинаются никому не нужное выполнение циклов.
Кто вообще встречался с проблемами в этой команде ?

Ни одна ни вторая команда не помогает, а выйти нужно что б произошел запуск следующего батника.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2011, 22:14
Ответы с готовыми решениями:

Конец файла EOF
Начал заново учить программирование на c++ по книге Кернигана, Ритчи. Дошел до главы с EOF и никак не могу разобраться уже несколько часов....

Команда send keys переходит в конец макроса
Здравствуйте, подскажите, пожалуйста как решить проблему.. есть макрос (их много, но выложу один), вникать в него не нужно.. суть одна...

Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

97
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
05.11.2011, 19:06  [ТС]
Студворк — интернет-сервис помощи студентам
Как сделать что б брал на проверку файлы длиной 8 символов ? а не все файлы подряд ?
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
05.11.2011, 19:33  [ТС]
Вот модицировал твой код
Все выходные мучаюсь

1) В команде стоит move /y а все равно спрашивает если существует такой же файл ПЕРЕЗАПИСАТЬ ?
2) Почему то указал что длина файлов не должна превышать 8ми символов, а вместо этого он работает со всеми значениями?

Код получился достаточно тяжелый поэтому пришлось установить дополнительно просмоторщик всех папок.

Windows Batch file
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
@echo off
 
setlocal enabledelayedexpansion
SET thePATH=%1
 
echo Проверка ящика номер %thePATH% 
 
if not exist "E:\OTDEL\%thePATH%" call :start 
 
 
 
rem echo начинаем просмотр ящиков
rem pause  
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
dir /a-d /b "E:\OTDEL\%thePATH%\OUT\OSB\%%a" 1>nul 2>nul  && (
goto start)
)
exit /b
 
 
:start
 
echo стандартная проверка
rem pause
 
 
 
 
 
 
 
 
::Устанавливаем пути
::*************************************************************************************
SET thePATH=%1
 
rem устанавливаем максимальный размер отправляемых файлов
SET massa=20971520
 
 
rem Устанавливаем путь отправки временно !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
rem SET GOOD=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\COLECTOR.PRO\OUT
SET GOOD=E:\SERVER\BAT\AUTO_TECOS\COLECTOR.PRO\OUT
 
rem Устанавливаем путь для ARJ32.exe PKZIP25.EXE Rar.exe архиваторов 
rem SET ARC=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\ARC
SET ARC=E:\SERVER\BAT\AUTO_TECOS\ARC
 
 
::**************************************************************************************
 
rem Устанавливаем путь для SBERSIGN
rem SET SBERSIGN=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s
SET SBERSIGN=E:\SERVER\BAT\AUTO_TECOS\sign_s
             
 
rem Устанавливаем путь для хранения базы ключей Sbersign
rem SET SBERDATA=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s
SET SBERDATA=E:\SERVER\BAT\AUTO_TECOS\sign_s
 
rem Устанавливаем путь для доступа к ящикам
rem set Put=\\Postal\ORG_MAIL\OTDEL
SET Put=E:\OTDEL
rem echo %Put%
rem pause
 
 
::**************************************************************************************
 
rem  Устанавливаем путь лога для ящиков 
rem SET LOG_USER=\\Postal\ORG_MAIL\OTDEL\%thePATH%\LOG
SET LOG_USER=E:\OTDEL\%thePATH%\LOG
               
rem  Устанавливаем путь лога для оператора
rem SET LOG_OPER=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\LOG
SET LOG_OPER=E:\SERVER\BAT\AUTO_TECOS\LOG
 
rem  Устанавливаем путь лога для ящиков TEMP
SET LOG_USER_TEMP=E:\SERVER\BAT\AUTO_TECOS\LOG\LOG_OTD
 
rem /l= путь для лога Sbersign
rem SET SET_SIGN=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s\SIGN_LOG
SET SET_SIGN=E:\SERVER\BAT\AUTO_TECOS\sign_s\SIGN_LOG
 
 
 
::**************************************************************************************
 
 
 
 
rem echo Создаем структуру каталогов
::**************************************************************************************
                                 
echo nen
rem if %thePATH%==900 ( if not exist "%Put%\%thePATH%\OUT\Moscow\Transport_packet\" md "%Put%\%thePATH%\OUT\Moscow\Transport_packet\")
 
if not exist "%Put%\%thePATH%\OUT\Moscow\" md "%Put%\%thePATH%\OUT\Moscow\"
 
 
 
 
 
 
:: Создаем структуру для запаковки файлов
if not exist "E:\OTDEL\%thePATH%\Arj_pack\1_Папка_для_архивации\" md "E:\OTDEL\%thePATH%\Arj_pack\1_Папка_для_архивации\"
if not exist "E:\OTDEL\%thePATH%\Arj_pack\2_Готовый_архив\" md "E:\OTDEL\%thePATH%\Arj_pack\2_Готовый_архив\"
if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.bat" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LNK\Arj_pack\Arj_pack.bat" "E:\OTDEL\%thePATH%\Arj_pack\"
 
 
 
 
if not exist "E:\OTDEL\%thePATH%\LOG\" md "E:\OTDEL\%thePATH%\LOG\"
if not exist "%Put%\%thePATH%\NOT_OUT\" md "%Put%\%thePATH%\NOT_OUT\"
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
if not exist "%Put%\%thePATH%\OUT\OSB\%%a\" md "%Put%\%thePATH%\OUT\OSB\%%a\"
)
                                                  
 
 
rem if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.bat" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LINK\Arj_pack\*.bat" "E:\OTDEL\%thePATH%\Arj_pack\"
rem if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.lnk" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LINK\Arj_pack\*.lnk" "E:\OTDEL\%thePATH%\Arj_pack\"
 
 
 
 
 
rem echo проверяем созданную структуру
rem pause
::**************************************************************************************
 
 
 
 
echo установка даты
set dd=%DATE%
set tt=%TIME%
set /a ddd=%dd:~0,2%
IF %ddd% lss 10 (
SET day=0%ddd%) else (
SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%
set /a ttt=%tt:~0,2%
IF %ttt% LSS 10 (
 SET hour=0%ttt%) else (
 SET hour=%ttt%)
SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
echo время начала проверки %day% %month% %year% %hour% %minute% %sec%
set out_time=%day%%month%%hour%%minute%
 
 
 
 
 
::****************************************
::*      Установка шапок для логов       *                              
::****************************************                            
 
if not exist "%LOG_OPER%\HISTORY_%year%.txt" (            
echo ************************************************************************************************************************************************* >>%LOG_OPER%\HISTORY_%year%.txt
echo *   №   *    Дата    *  Время   * Отправлен     *  Значение ошибки       * Имя файла    * Размер файла     * Путь нахождения файла              * >>%LOG_OPER%\HISTORY_%year%.txt
echo * ящика *  отправки  * отправки * Не отправлен  *                        *              *                  *                                    * >>%LOG_OPER%\HISTORY_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_OPER%\HISTORY_%year%.txt
)                                                               
 
 
if not exist "%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt" (
 
echo ************************************************************************************************************************************************* >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo *   ╣   *    ─рЄр    *  ┬Ёхь*   * ╬ЄяЁртыхэ     *  ╟эрўхэшх ю°шсъш       * ╚ь* Їрщыр    * ╨рчьхЁ Їрщыр     * ╧єЄ№ эрїюцфхэш* Їрщыр              * >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo * *∙шър *  юЄяЁртъш  * юЄяЁртъш * ═х юЄяЁртыхэ  *                        *              *                  *                                    * >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
)                                                                                                              
 
if not exist "%LOG_USER%\HISTORY_%thePATH%_%year%.txt" (
 
echo ************************************************************************************************************************************************* >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo *   ╣   *    ─рЄр    *  ┬Ёхь*   * ╬ЄяЁртыхэ     *  ╟эрўхэшх ю°шсъш       * ╚ь* Їрщыр    * ╨рчьхЁ Їрщыр     * ╧єЄ№ эрїюцфхэш* Їрщыр              * >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo * *∙шър *  юЄяЁртъш  * юЄяЁртъш * ═х юЄяЁртыхэ  *                        *              *                  *                                    * >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
)                                                                                                              
 
::**************************************************************************************
 
          
 
::начинаем проверку всех директорий на наличие файлов
echo ::начинаем проверку всех директорий на наличие файлов
 
rem pause
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
 
 set the_osb=%%a
 rem echo %%a
 rem pause
 rem echo Установили каталог проверки ОСБ # !the_osb!
 for /f "delims=" %%g in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.???" 2^>nul') do (
  SET G=%%~ng
  echo %G% !G! and %%g
  pause
 
  if not exist "%GOOD%\OSB\%%a\" md "%GOOD%\OSB\%%a\"
  rem задаем форматы дозволенных файлов поиска
 
  for %%b in (rtf,pdf,xls,txt,tiff) do (
   
 
   for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.%%b" 2^>nul') do (
    rem rename %Put%\%thePATH%\OUT\OSB\%%a\%%c %%c
    rem if not errorlevel 0 ( echo файл свободен ) else ( echo файл занят )
    rem pause
    for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     SET jj=%%~zj
     if %%~zj lss %massa% (
     
     rem echo сработало первое IF на проверку на размер меньше 10 мб 
     rem pause
     %SBERSIGN%\sbersign.exe /p  /l=%SET_SIGN%\sign.lst "%Put%\%thePATH%\OUT\OSB\%%a\%%c"                                                                   
     SET cc=%%c
     if errorlevel 1 ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     call :mis_1) else ( 
     if not exist "%GOOD%\OSB\%%a" md "%GOOD%\OSB\%%a"
     move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%GOOD%\OSB\%%a"
     call :mis_2 )
     ) else ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a"
        call :mis_3)
         
     )
 
    )
   ) 
  rem Задаем формат архива ARJ для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.arj" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   
   rem echo Нашли !ARJ!
   rem rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
     %ARC%\arj32.exe e -y !ARJ! %Put%\%thePATH%\OUT\OSB\%%a\TEMP
     call :temp_extr
     ) else (
           
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a" 
        call :mis_3 ) 
    )
   )
 
  rem Задаем формат архива ZIP для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.zip" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ARJ!
   rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
      %ARC%\pkzip25.exe -over=all -extract !ARJ! %Put%\%thePATH%\OUT\OSB\%%a\TEMP
      call :temp_extr
      ) else (
           
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a"
        call :mis_3 )
    )
   )
 
 
  rem Задаем формат архива RAR для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.rar" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ARJ!
   rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
     %ARC%\Rar.exe e -y %ARJ% %Put%\%thePATH%\OUT\OSB\%%a\TEMP
     call :temp_extr
     ) else (
 
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a"
        call :mis_3 ) 
    )
   )
 
 
  rem Задаем формат архива DOC для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.doc" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set DOC="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !DOC! %%a
   rem pause
   if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
   move /y !DOC! %Put%\%thePATH%\NOT_OUT\%out_time%\%%a
   call :mis_4 )
 
  rem Задаем формат архива DOCX для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.docx" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set DOCX="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !DOCX!
   rem pause
   if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
   move /y !DOCX! %Put%\%thePATH%\NOT_OUT\%out_time%\%%a
   call :mis_5) 
 
   rem echo проверка на наличие мусора
   rem pause
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.*" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set ALL="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ALL!доработать!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   rem pause
   if not exist %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\ md %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\
   move /y !ALL!  %Put%\%thePATH%\NOT_OUT\%out_time%\%%a
   call :mis_6)
 
  
  )
 )
 
 
rem echo Выполнили программу просмотра всех каталогов ящика №%thePATH%
rem pause
 
 
goto end
 
 
:mis_1
 
:m1
if "%jj:~14,1%"=="" (
set jj=%jj% 
goto m1
)
 
echo * %S% *
rem pause
 
 
echo сейчас будет записан лог ошибки ЭЦП
rem pause
 
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Ошибка ЭЦП             * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b 
 
:mis_2
 
:m2
if "%jj:~14,1%"=="" (
set jj=%jj% 
goto m2
)
 
 
echo сейчас будет записан лог правильной эцп и перенос файла
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% *    Отправлен  * Ошибок нет             * %cc% * %jj%  * Отправлен в ОСБ № %the_osb%             * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause 
exit /b
 
:mis_3
 
 
 
echo сейчас будет записан лог файла превышающего размер
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Размер больше %massa% * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
:mis_4
 
 
 
echo сейчас будет записан лог файла DOC
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Внутри *.DOC           * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
:mis_5
 
echo сейчас будет записан лог файла DOCX
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Внутри *.DOCX          * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
 
:mis_6
 
echo сейчас будет записан лог файла не верно заданного формата
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Имя файла неверно      * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
 
 
 
:temp_extr
 
rem Распаковка найденных архивов
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.arj" 2^>nul') do (
 %ARC%\arj32.exe e -y "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.zip" 2^>nul') do (
 %ARC%\pkzip25.exe -over=all -extract "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.rar" 2^>nul') do (
 %ARC%\Rar.exe e -y "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
 
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.arj" goto :temp_extr
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.zip" goto :temp_extr
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.rar" goto :temp_extr
 
 
 
echo Если находим DOC или DOCX производим выход и переносим архив в каталог для неотправки
rem pause
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.doc" (
 if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
 move /y %ARJ% %Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%
 rmdir /s /q %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\
 exit /b
)
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.docx" (
 if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
 move /y %ARJ% %Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%
 rmdir /s /q %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\
 exit /b
)                       
 
rem Копируем все базы ключей
rem проверяем архивы на наличие ЭЦП
rem pause
rem copy  /y %SBERDATA_FROM%\sign.d04 %SBERDATA%\sign.dat >nul                  
echo ****************************************  >>%SET_SIGN%\sign.lst
echo * %ARJ% * >>%SET_SIGN%\sign.lst
echo ****************************************  >>%SET_SIGN%\sign.lst
cd /d "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP"
%SBERSIGN%\sbersign.exe /p /l=%SET_SIGN%\sign.lst *.*
if errorlevel 1 (
if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
move /y %ARJ% "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\"
call :mis_1) else (
if not exist "%GOOD%\OSB\%the_osb%\" md "%GOOD%\OSB\%the_osb%\"
move /y %ARJ% "%GOOD%\OSB\%the_osb%\"
call :mis_2)
cd /d "%Put%\%thePATH%\OUT\OSB\%the_osb%"
rmdir /s /q "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\"
exit /b
 
 
 
 
 
 
 
 
 
 
:end
 
 
 
echo добавляем информацию в историю и меняем кодировку 
chcp 866 >nul
for /f "tokens=*" %%x in (%LOG_OPER%\HISTORY_TEMP_%year%.txt) do call :convert %%x
del %LOG_OPER%\HISTORY_TEMP_%year%.txt
goto end11
 
:convert
chcp 866 >nul
echo %*>>%LOG_OPER%\HISTORY_%year%.txt
chcp 1251 >nul
echo %*>>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo %*>>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
chcp 866 >nul
exit /b
 
 
 
 
 
 
 
:end11
 
 
echo Закончили обработку ящика №%thePATH%
rem cls
rem goto start
rem pause
exit /b
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
05.11.2011, 20:51
длина файлов не должна превышать 8ми символов, а вместо этого он работает со всеми значениями?
очень странно по коду все верно, надо тестить. Какие конкретно файлы более 8 символов обработались? пример названия есть?

Добавлено через 48 минут
move сделайте везде одинаково
move /y "файл" "имя папки"
вдруг что то из этого не работает.

У меня вроде как все нормально работает. Тестирую дальше.

Добавлено через 3 минуты
А все файлы он обрабатывает потому что вот у вас обработка стоит
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rem echo проверка на наличие мусора
   rem pause
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.*" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set ALL="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ALL!доработать!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   rem pause
   if not exist %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\ md %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\
   move /y !ALL!  %Put%\%thePATH%\NOT_OUT\%out_time%\%%a
   call :mis_6)[/BASH]
все таки лучше имена файлов в кавычках писать мало ли там пробелы будут или скобки или еще что
 
[size="1"][color="grey"][I]Добавлено через 4 минуты[/I][/color][/size]
Ну не знаю если все равно спрашивает переделайте все move так
[BASH]echo Y|move "файл" "папка\"
это должно работать в любом случае

Добавлено через 6 минут
Не срабатывает это только когда заменяемый файл помечен только для чтения.
У вас такое может быть?

Добавлено через 8 минут
и еще там у вас в комментариях написана проверка что размер 10мб, а в переменной на самом деле стоит размер 20мб.
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
05.11.2011, 21:34  [ТС]
Имя файла вот Копия 12345ИМЯ.txt
Размер я все знаю, там нормуль я просто все проверял. с мувом попробую !

так там обработка всех файлов должна проходить которые остались например:

12345678.txt
1234567890.txt
Первый файл должен первый фор обработать, а все что останется больше 8 символов должен как раз таки *.* обработать, а оно чето не так.


первый забирает все что только есть формата txt например ну все что у него перечислено. !

а второй гоняет в холостую.
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
05.11.2011, 22:02
Так как у вас файл с пробелом ставьте везде где имя файла кавычки.
А то у вас где они есть где нет.

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

Добавлено через 5 минут
Ну проверьте что ли может что то в настройках среды
создайте новую папку и там батник
Code
1
2
dir /a-d /b ??.txt
pause
и создайте там файлы 1.txt 11.txt 111.txt
должно вывести на экран
1.txt
11.txt
1
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
06.11.2011, 21:16  [ТС]
проделал как Вы сказали все нормально передал только 2 файла.
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
06.11.2011, 21:18  [ТС]
Перелопатил весь код все вроде правильно, вот код работы хавает все что попадает под руку ! и длинные и короткие имена
Вложения
Тип файла: txt test.txt (10.9 Кб, 27 просмотров)
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
06.11.2011, 21:36  [ТС]
Вот лог выполнения с echo on из него явно видно что батник наглым образом хавает файл длиной свыше 8 ми символов

Windows Batch file
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
@echo on
 
setlocal enabledelayedexpansion
SET thePATH=%1
echo Проверка ящика номер %thePATH% 
 
if not exist "E:\OTDEL\%thePATH%" call :start 
 
 
 
rem echo начинаем просмотр ящиков
rem pause  
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
dir /a-d /b "E:\OTDEL\%thePATH%\OUT\OSB\%%a" 1>nul 2>nul  && (
goto start)
)
exit /b
 
 
:start
 
 
 
::Устанавливаем пути
::*************************************************************************************
rem SET thePATH=%1
 
rem устанавливаем максимальный размер отправляемых файлов
SET massa=20971520
 
 
rem Устанавливаем путь отправки временно !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
rem SET GOOD=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\COLECTOR.PRO\OUT
SET GOOD=E:\SERVER\BAT\AUTO_TECOS\COLECTOR.PRO\OUT
 
rem Устанавливаем путь для ARJ32.exe PKZIP25.EXE Rar.exe архиваторов 
rem SET ARC=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\ARC
SET ARC=E:\SERVER\BAT\AUTO_TECOS\ARC
 
 
::**************************************************************************************
 
rem Устанавливаем путь для SBERSIGN
rem SET SBERSIGN=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s
SET SBERSIGN=E:\SERVER\BAT\AUTO_TECOS\sign_s
             
 
rem Устанавливаем путь для хранения базы ключей Sbersign
rem SET SBERDATA=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s
SET SBERDATA=E:\SERVER\BAT\AUTO_TECOS\sign_s
 
rem Устанавливаем путь для доступа к ящикам
rem set Put=\\Postal\ORG_MAIL\OTDEL
SET Put=E:\OTDEL
rem echo %Put%
rem pause
 
 
::**************************************************************************************
 
rem  Устанавливаем путь лога для ящиков 
rem SET LOG_USER=\\Postal\ORG_MAIL\OTDEL\%thePATH%\LOG
SET LOG_USER=E:\OTDEL\%thePATH%\LOG
               
rem  Устанавливаем путь лога для оператора
rem SET LOG_OPER=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\LOG
SET LOG_OPER=E:\SERVER\BAT\AUTO_TECOS\LOG
 
rem  Устанавливаем путь лога для ящиков TEMP
SET LOG_USER_TEMP=E:\SERVER\BAT\AUTO_TECOS\LOG\LOG_OTD
 
rem /l= путь для лога Sbersign
rem SET SET_SIGN=\\Postal\ORG_MAIL\SERVER\BAT\AUTO_TECOS\sign_s\SIGN_LOG
SET SET_SIGN=E:\SERVER\BAT\AUTO_TECOS\sign_s\SIGN_LOG
 
 
 
::**************************************************************************************
 
 
 
 
rem echo Создаем структуру каталогов
::**************************************************************************************
                                 
 
if %thePATH%==010 ( if not exist "%Put%\%thePATH%\OUT\Moscow\Transport_packet\" md "%Put%\%thePATH%\OUT\Moscow\Transport_packet\")
 
if not exist "%Put%\%thePATH%\OUT\Moscow\" md "%Put%\%thePATH%\OUT\Moscow\"
 
 
 
 
 
:: Создаем структуру для запаковки файлов
if not exist "E:\OTDEL\%thePATH%\Arj_pack\1_Папка_для_архивации\" md "E:\OTDEL\%thePATH%\Arj_pack\1_Папка_для_архивации\"
if not exist "E:\OTDEL\%thePATH%\Arj_pack\2_Готовый_архив\" md "E:\OTDEL\%thePATH%\Arj_pack\2_Готовый_архив\"
if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.bat" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LNK\Arj_pack\Arj_pack.bat" "E:\OTDEL\%thePATH%\Arj_pack\"
 
 
 
 
if not exist "E:\OTDEL\%thePATH%\LOG\" md "E:\OTDEL\%thePATH%\LOG\"
if not exist "%Put%\%thePATH%\NOT_OUT\" md "%Put%\%thePATH%\NOT_OUT\"
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
if not exist "%Put%\%thePATH%\OUT\OSB\%%a\" md "%Put%\%thePATH%\OUT\OSB\%%a\"
)
                                                  
 
 
rem if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.bat" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LINK\Arj_pack\*.bat" "E:\OTDEL\%thePATH%\Arj_pack\"
rem if not exist "E:\OTDEL\%thePATH%\Arj_pack\*.lnk" copy "E:\SERVER\BAT\AUTO_TECOS\BAT\LINK\Arj_pack\*.lnk" "E:\OTDEL\%thePATH%\Arj_pack\"
 
 
 
 
 
rem echo проверяем созданную структуру
rem pause
::**************************************************************************************
 
 
 
 
echo установка даты
set dd=%DATE%
set tt=%TIME%
set /a ddd=%dd:~0,2%
IF %ddd% lss 10 (
SET day=0%ddd%) else (
SET day=%ddd%)
set month=%dd:~3,2%
set year=%dd:~6,4%
set /a ttt=%tt:~0,2%
IF %ttt% LSS 10 (
 SET hour=0%ttt%) else (
 SET hour=%ttt%)
SET minute=%tt:~3,2%
SET sec=%tt:~6,2%
echo время начала проверки %day% %month% %year% %hour% %minute% %sec%
set out_time=%day%%month%%hour%%minute%
 
 
 
 
 
::****************************************
::*      Установка шапок для логов       *                              
::****************************************                            
 
if not exist "%LOG_OPER%\HISTORY_%year%.txt" (            
echo ************************************************************************************************************************************************* >>%LOG_OPER%\HISTORY_%year%.txt
echo *   №   *    Дата    *  Время   * Отправлен     *  Значение ошибки       * Имя файла    * Размер файла     * Путь нахождения файла              * >>%LOG_OPER%\HISTORY_%year%.txt
echo * ящика *  отправки  * отправки * Не отправлен  *                        *              *                  *                                    * >>%LOG_OPER%\HISTORY_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_OPER%\HISTORY_%year%.txt
)                                                               
 
 
if not exist "%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt" (
echo ************************************************************************************************************************************************* >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo *   ╣   *    ─рЄр    *  ┬Ёхь*   * ╬ЄяЁртыхэ     *  ╟эрўхэшх ю°шсъш       * ╚ь* Їрщыр    * ╨рчьхЁ Їрщыр     * ╧єЄ№ эрїюцфхэш* Їрщыр              * >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo * *∙шър *  юЄяЁртъш  * юЄяЁртъш * ═х юЄяЁртыхэ  *                        *              *                  *                                    * >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
)                                                                                                              
 
if not exist "%LOG_USER%\HISTORY_%thePATH%_%year%.txt" (
echo ************************************************************************************************************************************************* >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo *   ╣   *    ─рЄр    *  ┬Ёхь*   * ╬ЄяЁртыхэ     *  ╟эрўхэшх ю°шсъш       * ╚ь* Їрщыр    * ╨рчьхЁ Їрщыр     * ╧єЄ№ эрїюцфхэш* Їрщыр              * >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo * *∙шър *  юЄяЁртъш  * юЄяЁртъш * ═х юЄяЁртыхэ  *                        *              *                  *                                    * >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
echo ************************************************************************************************************************************************* >>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
)                                                                                                              
 
::**************************************************************************************
 
          
 
::начинаем проверку всех директорий на наличие файлов
echo ::начинаем проверку всех директорий на наличие файлов
 
rem pause
for %%a in (0030,1583,1587,1811,1812,1856,1857,1858,1859,1860,1861,1872,5230,5231,5232,5238,5239,5241,7799,7908,8579,8585,8590,8631,8632,8633,8643,KRAY,Respubliki,DO_137,OPERU,Vsem_OSB) do (
 
 set the_osb=%%a
 rem echo %%a
 rem pause
 rem echo Установили каталог проверки ОСБ # !the_osb!
   if not exist "%GOOD%\OSB\%%a\" md "%GOOD%\OSB\%%a\"
  rem задаем форматы дозволенных файлов поиска
 
  for %%b in (rtf,pdf,xls,txt,tiff) do (
   
 
   for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.%%b" 2^>nul') do (
    rem rename %Put%\%thePATH%\OUT\OSB\%%a\%%c %%c
    rem if not errorlevel 0 ( echo файл свободен ) else ( echo файл занят )
    rem pause
    for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     SET jj=%%~zj
     if %%~zj lss %massa% (
     
     rem echo сработало первое IF на проверку на размер меньше 10 мб 
     rem pause
     %SBERSIGN%\sbersign.exe /p  /l=%SET_SIGN%\sign.lst "%Put%\%thePATH%\OUT\OSB\%%a\%%c"                                                                   
     SET cc=%%c
     if errorlevel 1 ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     call :mis_1) else ( 
     if not exist "%GOOD%\OSB\%%a" md "%GOOD%\OSB\%%a"
     echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%GOOD%\OSB\%%a\"
     if errorlevel 0 (call :mis_2) else (call :mis_7))
     
     ) else ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        call :mis_3)
         
     )
 
    )
   ) 
  rem Задаем формат архива ARJ для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.arj" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   
   rem echo Нашли !ARJ!
   rem rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
     %ARC%\arj32.exe e -y !ARJ! %Put%\%thePATH%\OUT\OSB\%%a\TEMP
     call :temp_extr
     ) else (
           
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        echo Y|move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
        call :mis_3 ) 
    )
   )
 
  rem Задаем формат архива ZIP для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.zip" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ARJ!
   rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
      %ARC%\pkzip25.exe -over=all -extract !ARJ! %Put%\%thePATH%\OUT\OSB\%%a\TEMP
      call :temp_extr
      ) else (
           
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        echo Y|move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        call :mis_3 )
    )
   )
 
 
  rem Задаем формат архива RAR для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.rar" 2^>nul') do (
   if not exist "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\" md "%Put%\%thePATH%\OUT\OSB\%%a\TEMP\"
   set ARJ="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ARJ!
   rem pause
   for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     set jj=%%~zj
     if %%~zj lss %massa% (
     %ARC%\Rar.exe e -y %ARJ% %Put%\%thePATH%\OUT\OSB\%%a\TEMP
     call :temp_extr
     ) else (
 
        if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        echo Y|move /y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        call :mis_3 ) 
    )
   )
 
 
  rem Задаем формат архива DOC для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.doc" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set DOC="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !DOC! %%a
   rem pause
   if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
   echo Y|move /y !DOC! "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
   call :mis_4 )
 
  rem Задаем формат архива DOCX для поиска
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.docx" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set DOCX="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !DOCX!
   rem pause
   if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
   echo Y|move /y !DOCX! "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
   call :mis_5) 
 
   rem echo проверка на наличие мусора
   rem pause
  for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.*" 2^>nul') do (
   SET cc=%%c
   set jj=%%~zc
   set ALL="%Put%\%thePATH%\OUT\OSB\%%a\%%c"
   rem echo Нашли !ALL!доработать!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   rem pause
   if not exist %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\ md %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\
   echo Y|move /y !ALL!  "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
   call :mis_6)
 
  
  
 )
 
 
rem echo Выполнили программу просмотра всех каталогов ящика №%thePATH%
rem pause
 
 
goto end
 
 
:mis_1
 
:m1
if "%jj:~14,1%"=="" (
set jj=%jj% 
goto m1
)
 
echo * %S% *
rem pause
 
 
echo сейчас будет записан лог ошибки ЭЦП
rem pause
 
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Ошибка ЭЦП             * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b 
 
:mis_2
 
:m2
if "%jj:~14,1%"=="" (
set jj=%jj% 
goto m2
)
 
 
echo сейчас будет записан лог правильной эцп и перенос файла
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% *    Отправлен  * Ошибок нет             * %cc% * %jj%  * Отправлен в ОСБ № %the_osb%             * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause 
exit /b
 
:mis_3
 
 
 
echo сейчас будет записан лог файла превышающего размер
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Размер больше %massa% * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
:mis_4
 
 
 
echo сейчас будет записан лог файла DOC
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Внутри *.DOC           * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
:mis_5
 
echo сейчас будет записан лог файла DOCX
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Внутри *.DOCX          * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
 
:mis_6
 
echo сейчас будет записан лог файла не верно заданного формата
rem pause
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% * Не отправлен  * Имя файла неверно      * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
:mis_7
 
 
 
echo сейчас будет записан лог файла превышающего размер
rem pause                                                                         
echo * %thePATH%   * %day%.%month%.%year% * %hour%.%minute%.%sec% *    Отправлен  * Файл перезаписан * %cc% * %jj%  * \%thePATH%\NOT_OUT\%out_time%\%the_osb% * >>%LOG_OPER%\HISTORY_TEMP_%year%.txt
rem pause
exit /b
 
 
 
 
:temp_extr
 
rem Распаковка найденных архивов
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.arj" 2^>nul') do (
 %ARC%\arj32.exe e -y "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.zip" 2^>nul') do (
 %ARC%\pkzip25.exe -over=all -extract "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
for /f "delims=" %%d in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.rar" 2^>nul') do (
 %ARC%\Rar.exe e -y "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d" %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP
 del "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\%%d"
 )
 
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.arj" goto :temp_extr
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.zip" goto :temp_extr
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.rar" goto :temp_extr
 
 
 
echo Если находим DOC или DOCX производим выход и переносим архив в каталог для неотправки
rem pause
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.doc" (
 if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
 echo Y|move /y "%ARJ% %Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\"
 rmdir /s /q %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\
 exit /b
)
if exist "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\*.docx" (
 if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
 echo Y|move /y "%ARJ% %Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\"
 rmdir /s /q %Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\
 exit /b
)                       
 
rem Копируем все базы ключей
rem проверяем архивы на наличие ЭЦП
rem pause
rem copy  /y %SBERDATA_FROM%\sign.d04 %SBERDATA%\sign.dat >nul                  
echo ****************************************  >>%SET_SIGN%\sign.lst
echo * %ARJ% * >>%SET_SIGN%\sign.lst
echo ****************************************  >>%SET_SIGN%\sign.lst
cd /d "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP"
%SBERSIGN%\sbersign.exe /p /l=%SET_SIGN%\sign.lst *.*
if errorlevel 1 (
if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\" 
echo Y|move /y %ARJ% "%Put%\%thePATH%\NOT_OUT\%out_time%\%the_osb%\"
call :mis_1) else (
if not exist "%GOOD%\OSB\%the_osb%\" md "%GOOD%\OSB\%the_osb%\"
echo Y|move /y %ARJ% "%GOOD%\OSB\%the_osb%\"
call :mis_2)
cd /d "%Put%\%thePATH%\OUT\OSB\%the_osb%"
rmdir /s /q "%Put%\%thePATH%\OUT\OSB\%the_osb%\TEMP\"
exit /b
 
 
:end
 
 
 
echo добавляем информацию в историю и меняем кодировку 
chcp 866 >nul
for /f "tokens=*" %%x in (%LOG_OPER%\HISTORY_TEMP_%year%.txt) do call :convert %%x
del %LOG_OPER%\HISTORY_TEMP_%year%.txt 
goto end11
 
:convert
chcp 866 >nul
echo %*>>%LOG_OPER%\HISTORY_%year%.txt
chcp 1251 >nul
echo %*>>%LOG_USER_TEMP%\HISTORY_%thePATH%_%year%.txt
echo %*>>%LOG_USER%\HISTORY_%thePATH%_%year%.txt
chcp 866 >nul
exit /b
 
 
 
 
 
 
 
:end11
 
 
echo Закончили обработку ящика №%thePATH%
rem cls
rem goto start
rem pause
exit /b
Вложения
Тип файла: rar test.rar (9.3 Кб, 13 просмотров)
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
06.11.2011, 23:36
Понятно. Интересный баг. Буду разбираться.

Добавлено через 11 минут
Причина наверно вот в чем.
Поскольку раньше было ограничение на название файла в 8 знаков, использование восьми ? воспринимается как любой файл.

Придется значит проверять длину имени файла вручную.

Добавлено через 21 минуту
тогда вместо
Windows Batch file
1
for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.%%b" 2^>nul') do (
нужно использовать
Windows Batch file
1
for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.%%b" 2^>nul ^| findstr /v /r /c:"^..........*\.%%b$") do (
вместо
Windows Batch file
1
for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.arj" 2^>nul') do (
Windows Batch file
1
for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.arj" 2^>nul ^| findstr /v /r /c:"^..........*\.arj$"') do (
и так далее поменяйте
1
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 00:00  [ТС]
но все равно проскакивают файлы с неправильной маской
Вложения
Тип файла: rar test.rar (18.6 Кб, 11 просмотров)
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 00:07  [ТС]
кстати странно получается лог при выводе файлов
Вложения
Тип файла: txt HISTORY_010_2011.txt (2.9 Кб, 14 просмотров)
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 00:52  [ТС]
Это получается что имя файла повторилось и поэтому он выбрал его

Добавлено через 3 минуты
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * allarchi.ARJ * 11253 * Отправлен в ОСБ № 0030 *
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * Копия allarchi.ARJ * 11253 * Отправлен в ОСБ № 0030 *

allarchi.ARJ нашел одно и тоже имя вот поэтому и взял второй файл.

хотя по второму имя тоже одинаковое но он его не взял
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * 12340678.txt * 139
* 010 * 06.11.2011 * 22.56.31 * Не отправлен * Имя файла неверно * Копия 12340678.txt * 139

Добавлено через 36 минут
Ух я уже думаю может все ж таки воспользоваться другой конструкцией ???
for /f "delims=" %%i in ('dir /a-d /b %Put%\%thePATH%\OUT\OSB\%the_osb%\?????? ??.arj 2^>nul') do call :a10


через эту команду подготовить файлы те которые проверять уже может мы и ушли от goto или for но что-то все работает не совсем корректно везде сплошные подводные камни.
перебор папок можем передать через

for %%a in (0030,1583,1587,1811,1812,1856,1857,1858 ,1859,1860,1861,1872,5230,5231,5232,5238 ,5239,5241,7799,7908,8579,8585,8590,8631 ,8632,8633,8643,KRAY,Respubliki,DO_137,O PERU,Vsem_OSB) do (
dir /a-d /b "E:\OTDEL\%thePATH%\OUT\OSB\%%a" 1>nul 2>nul && (
goto start)
)
exit /b

наверное нужно пересмотреть структуру файла сценария

я уже подумываю установить вручную каталоги проверки прописать всех их ручками без автомата перебора
Странно здесь я передавал все через call все ок было таких сбоев вообще не было
for /f "delims=" %%i in ('dir /a-d /b %Put%\%thePATH%\OUT\OSB\%the_osb%\%OSB_Z IP% 2^>nul') do call :a10 "%Put%\%thePATH%\OUT\OSB\%the_osb%\% %i"
прошлая конструкция

сейчас передаем через

for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.%% b" 2^>nul ^| findstr /v /r /c:"^..........*\.%%b$"') do (

Может во втором варианте мы и ушли от переходов call и goto но каждый раз вылазиют новые глюки

может просто определить структуру немного другую и попробовать все передать через call ??

Например Алгоритм работы такой
1. Вызываем необходимые форматы.
2. Проверяем данные файлы на все критерии.
3. Устанавливаем переноса пути и записываем логи.
примерно представляю нуна попробовать
доделаю отпишусь. Покажу ну а пока нуна попробовать эту структуру доделать и правильно ее запустить. В принциппе уже почти работает. правда с глюками )))

Добавлено через 1 минуту
Чем больше погужаюсь в bath тем больше я пересматриваю код переписать на с. Хотя для начальной стадии пойдет и на bath узнаешь все ошибки.
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
07.11.2011, 01:07
Ну судя по моим тестам ???????? не отличается от *.
А в чем сейчас то проблема?
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 01:08  [ТС]
Это получается что имя файла повторилось и поэтому он выбрал его

Добавлено через 3 минуты
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * allarchi.ARJ * 11253 * Отправлен в ОСБ № 0030 *
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * Копия allarchi.ARJ * 11253 * Отправлен в ОСБ № 0030 *

allarchi.ARJ нашел одно и тоже имя вот поэтому и взял второй файл.

хотя по второму имя тоже одинаковое но он его не взял
* 010 * 06.11.2011 * 22.56.31 * Отправлен * Ошибок нет * 12340678.txt * 139
* 010 * 06.11.2011 * 22.56.31 * Не отправлен * Имя файла неверно * Копия 12340678.txt * 139

некоторые файлы почему то захватывает все равно больше 8ми символов
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
07.11.2011, 01:35
а понял у вас тот архив в расширении большие буквы содержит.
надо немного еще поменять команду.

Добавлено через 3 минуты
в команду добавьте ключ /i чтобы не различались прописные и заглавные буквы.
Code
1
findstr /v /i /r /c:"^..........*\.%%b$"
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 20:45  [ТС]
хм файлы больше 8 символов не проходят теперь все работает, но файлы меньше 8 ми символов пролетают. Получается все что меньше 8 ми все проходит и 8 и 7 и 6 и 5 и 4 и 3 и 2 и 1.

Может вывести цикл отдельный который будет брать отдельно файлы 8 м символов не больше не меньше???? и передавать это все в переменной ну а потом уже и творить все что угодно с этой переменной? или можно все ж таки тут тоже параметр поставить ?
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
07.11.2011, 22:09
вам надо ровно 8 символов? а то я же специально сделал аналогично ???????? чтобы и восемь и менее подходило.

Добавлено через 1 минуту
если так то findstr /i /r /c:"^........\.%%b$"
1
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 22:10  [ТС]
вот нашел еще один глюк

беру файл 12340678.txt кладу в одну директорию а в другой он уже есть и вместо того что б переложиться с заменой он не заменяется.

Windows Batch file
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
38
39
40
 for /f "delims=" %%c in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\????????.%%b" 2^>nul ^| findstr /v /i /r /c:"^..........*\.%%b$"') do (
    rem rename %Put%\%thePATH%\OUT\OSB\%%a\%%c %%c
    rem if not errorlevel 0 ( echo файл свободен ) else ( echo файл занят )
    rem pause
    for %%j in ("%Put%\%thePATH%\OUT\OSB\%%a\%%c") do (
     SET cc=%%c
     SET jj=%%~zj
     if %%~zj lss %massa% (
     
     rem echo сработало первое IF на проверку на размер меньше 10 мб 
     rem pause
     %SBERSIGN%\sbersign.exe /p  /l=%SET_SIGN%\sign.lst "%Put%\%thePATH%\OUT\OSB\%%a\%%c"                                                                   
     SET cc=%%c
     if errorlevel 1 ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" 
     call :mis_1) else ( 
     if not exist "%GOOD%\OSB\%%a" md "%GOOD%\OSB\%%a"
     echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%GOOD%\OSB\%%a\"
     if errorlevel 0 (call :mis_2) else (call :mis_7))
     
     ) else ( if not exist "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\" md "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        echo Y|move /Y "%Put%\%thePATH%\OUT\OSB\%%a\%%c" "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
        call :mis_3)
 
 
 
....................................................
 
 
   rem echo проверка на наличие мусора
   rem pause
  for /f "delims=" %%l in ('dir /a-d /b "%Put%\%thePATH%\OUT\OSB\%%a\*.*" 2^>nul') do (
   SET ll=%%l
   set jj=%%~zl
   set ALL="%Put%\%thePATH%\OUT\OSB\%%a\%%l"
   rem echo Нашли !ALL!доработать!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   rem pause
   if not exist %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\ md %Put%\%thePATH%\NOT_OUT\%out_time%\%%a\
   echo Y|move /y !ALL!  "%Put%\%thePATH%\NOT_OUT\%out_time%\%%a\"
   call :mis_6)
вот получается срабатывает mis_2 значит команда move вернула 0 но файл не перемещен

по логам видно что запустился mis _2 и mis_6 означает что он не переместился из-за того что там есть файл и потом его выгреб последний фор.

* 010 * 07.11.2011 * 21.00.07 * Отправлен * Ошибок нет * 12340678.txt * 139 * Отправлен в ОСБ № 0030 *
* 010 * 07.11.2011 * 21.00.07 * Не отправлен * Имя файла неверно * 12340678.txt * * \010\NOT_OUT\07112100\0030 *

в файле test.doc выделил ошибку
Миниатюры
Exit /b :eof не переходит в конец файла  
Вложения
Тип файла: doc test.doc (38.5 Кб, 13 просмотров)
0
35 / 27 / 0
Регистрация: 11.10.2011
Сообщений: 380
07.11.2011, 22:21  [ТС]
Цитата Сообщение от atributz Посмотреть сообщение
вам надо ровно 8 символов? а то я же специально сделал аналогично ???????? чтобы и восемь и менее подходило.

Добавлено через 1 минуту
если так то findstr /i /r /c:"^........\.%%b$"
ок спасибо, а то чето мануал читал по этой команде так и не понял все точно! ЕЩЕ раз спасибо теперь ограничения заработали так как нужно. Разгребаю следующие глюки.
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
07.11.2011, 23:01
Ну даже не знаю может у вас права доступа на папку стоят какие то и не разрешено перезаписывать файл (или мб только чтение стоит у файла, или какая программа блокирует файл может.
И скиньте новый код еще раз, завтра тогда проверю может пойму что то.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2011, 23:01

Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла
3)Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Даны два текстовых файла. Добавить в конец каждой строки первого файла соответствующую строку второго файла
Нужна помощь с самим модулем,с загрузкой и сохранением файлов все в принципе понятно.

При чтении из файла последние данные считываются дважды !? eof() ?
Есть следующий код: std::ifstream fin("ParentList", std::ios::binary); QString str; while(!fin.eof()) { ...

При построчном чтении файла eof наступает раньше срока
Здравствуйте, товарищи! Столкнулся с такой проблемой: при построчном потоковом чтении файла (при помощи getline) бит eof...

std::cin, eof не всегда принимается как признак конца файла
std::string text; char ch = 0; while(!std::cin.get(ch).eof()){ text.append(1, ch); } Ввожу в консоль в Windows: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru