2

У меня есть 4 файла, как показано ниже:

C:\Documents and Settings\vm\AC R\test

JE.BOS.20130516.CSV
JE.BES.20130516.CSV
KFROPN.SAVEFILE.CSV
KFBAD.SAVEFILE.CSV

Я должен заменить "." в имени файла с "-" . Но расширение .CSV должен оставаться таким же.

1) Я выполнил приведенную ниже команду и получил ошибку, как показано ниже:

for /f "tokens=1*delims=." %%i in ('dir /a-d/b *.*.CSV') do ren "%%~i.%%~j" "%%~i-%%~j"

Ошибка:

C:\Documents and Settings\vm\AC R\test>for /f "tokens=1*delims=." %%
i in ('dir /a-d/b *.*.CSV') do ren "%%~i.%%~j" "%%~i-%%~j"
%%i was unexpected at this time.

2) Я удалил один% до I и выполнил, как показано ниже:

for /f "tokens=1*delims=." %i in ('dir /a-d/b *.*.CSV') do ren "%%~i.%%~j" "%%~i-%%~j"

и получил ошибку, как показано ниже:

C:\Documents and Settings\vmeruga\ACCESS RECS\test>for /f "tokens=1*delims=." %i
 in ('dir /a-d/b *.*.CSV') do ren "%%~i.%%~j" "%%~i-%%~j"

C:\Documents and Settings\vmeruga\ACCESS RECS\test>ren "%JEFFERIES.%BODPOS.20130
516.CSV" "%JE-%BODPOS.20130516.CSV"
The system cannot find the file specified.

C:\Documents and Settings\vmeruga\ACCESS RECS\test>ren "%JEFFERIES.%BODTRADES.20
130516.CSV" "%JE-%BODTRADES.20130516.CSV"
The system cannot find the file specified.

C:\Documents and Settings\vmeruga\ACCESS RECS\test>ren "%KFBAROPN.%SAVEFILE.CSV"
 "%KFOPN-%SAVEFILE.CSV"
The system cannot find the file specified.

C:\Documents and Settings\vmeruga\ACCESS RECS\test>ren "%KFBARTRD.%SAVEFILE.CSV"
 "%KFBARTRD-%SAVEFILE.CSV"
The system cannot find the file specified.

2 ответа2

2

Вот, пожалуйста, сохраните следующее как.BAT файл и выполнить:

@setlocal enabledelayedexpansion&&for /f %%a in ('dir /b *.csv') do @set fn=%%~na&&set fn=!fn:.=-!&&ren "%%a" "!fn!%%~xa"
0

попробуйте это, посмотрите на вывод и удалите слово echo , если оно в порядке:

@echo off&setlocal
cd /d "C:\Documents and Settings\vm\AC R\test"
for %%i in (*.*.csv) do (
    set "fname=%%~ni"
    setlocal enabledelayedexpansion
    set "nname=!fname:.=-!"
    echo rename "!fname!.CSV" "!nname!.CSV"
    endlocal
)

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