Данные доступны в источнике

20161020162432intsol_wla_00000304.csv
$20161020162432intsol_wla_00000305.csv

& 20-30 похожих файлов.

Данные, которые должны быть получены в пункте назначения, должны быть такими:

intsol_wla_20161020162432_00000304.csv
intsol_wla_$20161020162432_00000305.csv

Вот что я пытаюсь сделать:

copy "d:\source\\ *int.csv" "d:\destination\\ *intsol_wla_%date:~-4,4%%date:~3,2%%date:~-10,2%.csv"

но это возвращает:

20161020162432_intsol_wla_2016 111.csv
$20161020162432_intsol_wla_2016 111.csv

Как мне это решить?

2 ответа2

0

Я предполагаю, что вы имеете в виду «копировать и переименовывать ..... из одной папки в другую папку», а не "машины".

Если это так, вот код, который может выполнить эту работу:(Файлы со знаком $ создают некоторые проблемы, поэтому я создал два цикла for для обработки обоих случаев)

@echo off

SET source="d:\source\"
SET dest="d:\destination\"

for %%a in (%source%$??????????????intsol_wla_*.csv) do (
    for %%F in (%%a) do (SET file=%%~nxF
        copy %%a %dest%intsol_wla_%file:~0,15%_%file:~26,8%.csv
    )
)

for %%b in (%source%??????????????intsol_wla_*.csv) do (
    for %%F in (%%b) do (SET file2=%%~nxF
        copy %%b %dest%intsol_wla_%file2:~0,14%_%file2:~25,8%.csv
    )
)
0

Мой первый для списков файлов, второй берет имена и разбивает их на букву я и подчеркивание, давая четыре токена.

NAME   20161020162432intsol_wla_00000304.csv
      $20161020162432intsol_wla_00000305.csv
TOKEN ------1--------|--2--|-3-|------4-----

Поскольку часть intsol_wla_ является константой, нам нужны только токены 1 и 4

@Echo off & SetLocal EnableExtensions
Set Src=Q:\Test\2016-11\11
Set Dst=Q:\Test\Dst
PushD "%Src%"||(Echo can't cd to %Src%&Pause&Exit /b 1)
For %%A in (*intsol_wla_*.csv
  ) Do For /F "tokens=1,4 delims=i_" %%B in ("%%A"
  ) Do Echo copy "%%~fA" "%Dst%\intsol_wla_%%B_%%C"
PopD

OutPut, чтобы действительно скопировать, удалите эхо перед копией.

copy "Q:\Test\2016-11\11\$20161020162432intsol_wla_00000305.csv" "Q:\Test\Dst\intsol_wla_$20161020162432_00000305.csv"
copy "Q:\Test\2016-11\11\20161020162432intsol_wla_00000304.csv" "Q:\Test\Dst\intsol_wla_20161020162432_00000304.csv"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .