powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Перенос файлов в папку
6 сообщений из 6, страница 1 из 1
Перенос файлов в папку
    #34056052
salexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите с задачкой, нужно перенести файлы в папку Ready
:: Переносим в папку Ready
FOR %%c in ( *.rar ) do (
set NameRar=%%c
FOR /L %%j in (1,1,100) do (
if exist ..\Ready\%NameRar% (set NameRar=%%~nc%%j.rar)
)
move %%c ..\Ready\%NameRar%
)
Неправильно работает (пытаюсь к имени файла добавить номер, если такой уже существует)
...
Рейтинг: 0 / 0
Перенос файлов в папку
    #34056110
salexaпомогите с задачкой, нужно перенести файлы в папку Ready
:: Переносим в папку Ready
FOR %%c in ( *.rar ) do (
set NameRar=%%c
FOR /L %%j in (1,1,100) do (
if exist ..\Ready\%NameRar% (set NameRar=%%~nc%%j.rar)
)
move %%c ..\Ready\%NameRar%
)
Неправильно работает (пытаюсь к имени файла добавить номер, если такой уже существует)
Здесь надо раскрывать подстановки в момент выполнения.
Это делается через "!", а не через "%".
Кроме того, надо включить эту возможность через

setlocal enabledelayedexpansion

Например (слегка упрощенный работающий пример):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@echo off
setlocal enabledelayedexpansion

for %%I in (ad*.*) do (
set CURRENTFILE=%%~nxI
set Sendfile=!CURRENTFILE!
set StopFile=C!Sendfile!
call :send 
)
...
:send
.....
...
Рейтинг: 0 / 0
Перенос файлов в папку
    #34056151
salexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а все ровно не помогает:
Код: plaintext
1.
2.
3.
4.
5.
6.
FOR %%c in ( *.rar ) do (
set NameRar = %%~nxc
set T = %%~nc
FOR /L %%j in ( 1 , 1 , 3 ) do (
if exist ..\Ready\!NameRar! ( set NameRar = !T!!j!.rar ) ELSE ( set NameRar = !T!!j!.rar ))
move %%c ..\Ready\!NameRar!
)
...
Рейтинг: 0 / 0
Перенос файлов в папку
    #34058811
salexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал вот так:
Код: plaintext
1.
2.
3.
4.
FOR %%c in ( *.rar ) do (
 if NOT exist ..\Ready\%%c (move %%c ..\Ready\%%c) ELSE (
   FOR /L %%j in ( 1 , 1 , 10 ) do (
     if NOT exist ..\Ready\%%~nc%%j.rar (move %%c ..\Ready\%%~nc%%j.rar)))
)
но как выйти и цикла не понятно, set j=10 не помогает
...
Рейтинг: 0 / 0
Перенос файлов в папку
    #34060064
salexaСделал вот так:
Код: plaintext
1.
2.
3.
4.
FOR %%c in ( *.rar ) do (
 if NOT exist ..\Ready\%%c (move %%c ..\Ready\%%c) ELSE (
   FOR /L %%j in ( 1 , 1 , 10 ) do (
     if NOT exist ..\Ready\%%~nc%%j.rar (move %%c ..\Ready\%%~nc%%j.rar)))
)
но как выйти и цикла не понятно, set j=10 не помогает
Я бы вынес второй цикл в "процедуру", которую вызывал бы через call, а в конце "процедуры" поставил инструкцию exit /b
А вообще есть хорошая статья на RSDN.ru
...
Рейтинг: 0 / 0
Перенос файлов в папку
    #34062128
salexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а зачем городить, чего-то выносить, все гораздо проще=))
Код: plaintext
1.
2.
3.
4.
FOR %%c in ( *.rar ) do (
 if NOT exist ..\Ready\%%c (move %%c ..\Ready\%%c) ELSE (
   FOR /L %%j in ( 1 , 1 , 10 ) do (
     if NOT exist ..\Ready\%%~nc%%j.rar (If exist %%c ( move %%c ..\Ready\%%~nc%%j.rar))))
)
работает=)

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


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