Я пытаюсь переименовать большое количество папок с датами в качестве имен. Я создал тестовую папку, содержащую только две такие папки. Их именаВыбирайте имена папок и переименовывайте папки с помощью пакетной команды
1-23-2014
10-1-2016
Я хочу, чтобы переименовать их
2014-01-23
2016-10-01
В командное окно запускается как администратор (возможно, не обязательно), я ввел эти команды.
C:\Users\Harry\Documents\Test Batch Job>dir
Volume in drive C is Windows
Volume Serial Number is 30C3-D653
Directory of C:\Users\Harry\Documents\Test Batch Job
12/11/2016 01:52 PM <DIR> .
12/11/2016 01:52 PM <DIR> ..
11/27/2016 10:33 PM <DIR> 1-23-2014
11/27/2016 10:33 PM <DIR> 10-1-2016
0 File(s) 0 bytes
4 Dir(s) 309,874,257,920 bytes free
C:\Users\Harry\Documents\Test Batch Job>for /f "tokens=1,2,3 delims=-" %%A in ("%~dp0") do rename %%A-%%B-%%C %%C-%%A-%%B
%%A was unexpected at this time.
C:\Users\Harry\Documents\Test Batch Job>
Я знаю, что я не иметь дело с отсутствующими ведущими нулями с этой командой - Я разберусь с этим после того, как я получаю эту команду работать.
Я получаю сообщение об ошибке
%% А был неожиданным в это время.
Как я могу пройти мимо этой ошибки? Благодарю.
Ничего себе, как правило, когда кто-то имеет эту проблему, это наоборот. Когда вы запускаете цикл for в командной строке, вы используете '% A' вместо' %% A'. – SomethingDark
Очень странная попытка использовать '% ~ dp0' из командной строки. Это имеет смысл только из пакетного скрипта, где ваш '%% A' будет работать нормально. – dbenham
Возможно, вы захотите проверить мою [регулярную экспансию batch/JScript renaming utility JREN.BAT] (http://www.dostips.com/forum/viewtopic.php?t=6081). Таким образом, полное решение из пакетного сценария будет «call jren»^(\ d \ d?) - (\ d \ d?) - (\ d {4}) $ "" $ 3 + '-' + lpad ($ 1, '00 ') +' - '+ lpad ($ 2, '00') "/ d/j', и он оставляет только каталоги, которые не соответствуют вашему шаблону даты. – dbenham