Начнем итерируя файл системы. ульд поиск необходимых файлов и показать им
for %%f in ("*.dat_*") do echo %%f
Теперь, когда мы можем найти файлы для обработки, мы должны отделить имя и расширение файлов. Это простая задача, так как сменные параметры for
(%%f
в предыдущем коде) позволяют использовать некоторые модификаторы для получения конкретной информации файла, на который имеется ссылка (полный список см. В разделе for /?
). Мы будем использовать %%~nf
(имя файла, на который ссылается %%f
) и %%~xf
(расширение файла на который ссылается на %%f
)
for %%f in ("*.dat_*") do echo %%~nf %%~xf
После того, как у нас есть два элемента, мы должны разделить расширение с помощью подчеркивания как разделитель. Это даст нам два жетона, левую и правую стороны подчеркивания. Для этого for /f
используется для обработки расширения файла.
for /f "tokens=1,2 delims=_" %%a in ("%%~xf") do echo %%a %%b
Как мы запрашиваем два маркеров, то for /f
будет использовать запрашиваемый заменяемый параметр %%a
для хранения первого, и создаст дополнительный заменяемый параметр %%b
(следующий символ), чтобы сохранить второй маркер.
%%~nf %%~xf
[.][................]
223.DAT_2017010211315 = %%f
^..^ ^...........^
%%a %%b
Таким образом, для каждого файла в списке, выполните for /f
, чтобы получить необходимую информацию для выполнения команды ren
.
for %%f in ("*.dat_*") do for /f "tokens=1,2 delims=_" %%a in ("%%~xf") do (
echo ren "%%f" "%%~nf_%%b%%a"
)
Обратите внимание, что для отладки purpouses, команда ren
не выполняется, только вторит утешать, чтобы проверить поведение кода. Если выход правильный, удалите echo
и запустите код еще раз.
Спасибо каждый за быстрый ответ .. я в состоянии удовлетворить требования. –
добро пожаловать. Пожалуйста, [принимайте ответ] (http://stackoverflow.com/help/someone-answers), который вам больше всего нравится/помогает. – Stephan