Обрезать и переименовать подкаталоги в каталоге - PullRequest
0 голосов
/ 29 мая 2019

У меня есть несколько папок с именем:

001TRIAL1
002TRIAL2
003TRIAL3
...etc.

Я пытаюсь переименовать все папки, используя , и обрезать их, чтобы получить:

TRIAL1
TRIAL2
TRIAL3
...etc.

Я пробовал этот код:

for /D %%X in (C:\FOLDER1\FOLDER2\*) do (
    move %%X %%X:~3,10%
)
Pause

Но я не могу получить желаемый результат.

Этот скрипт не работает, и я не знаю, как ямогу сделать это.Переименование позволяет переименовывать папки, но я не могу обрезать нужные мне папки.

1 Ответ

2 голосов
/ 29 мая 2019

Вы не можете развернуть метавариабельную подобным образом, вам нужно установить значение в соответствующую переменную, а затем выполнить расширение.Кроме того, поскольку переменная будет установлена ​​в блоке кода, вам необходимо включить отложенное расширение.Наконец, вы бы использовали Ren ame not Move, что потребовало бы, чтобы каталог уже существовал, , и вам нужно было бы удалить исходное имя каталога после переименования .

Попробуйтеэто:

@Echo Off
SetLocal DisableDelayedExpansion
For /D %%A In ("C:\FOLDER1\FOLDER2\*") Do (
    Set "_d=%%~nxA"
    SetLocal EnableDelayedExpansion
    If Not Exist "%%~dpA!_d:~3!" Ren "%%A" "!_d:~3!"
    EndLocal
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...