Я пытался добавить строку к имени файла группы файлов.Я прочитал несколько вопросов, и все они рекомендовали разный синтаксис для одной и той же команды, только один из которых работал.
Я использую cmder в качестве консоли.Я пытался добавить crypto-
ко всем файлам в CWD, и вот что я попробовал:
В этом ответе рекомендуется следующий синтаксис:
for i in *.png ; do mv "$i" "crypto-$i" ; done
я был неожидан в это время.
В этом ответе рекомендуется двойной знак процента %%i
:
for %%i in *.png ; do mv "$i" "crypto-$i" ; done
%% я был неожидан в это время.
В этом ответе рекомендуется использовать знак процента вместо знака доллара для i
:
for %i in *.png ; do mv "$i" "crypto-$i" ; done
*. Png в это время был неожиданным.
На этот раз я пошел дальше и заметил, что в ответе имя файла заключено в квадратные скобки, поэтому я попытался:
for %i in (*.png) ; do mv "$i" "crypto-$i" ; done
mv "$ i" "crypto- $ i";done
mv: target 'done' не является каталогом
Тогда я решил, что команда также должна быть в скобках:
for %i in (*.png) ; do (mv "$i" "crypto-$i") ; done
Выполнено было неожиданнов это время.
После этого я решил попробовать без ;
:
for %i in (*.png) do (mv "$i" "crypto-$i")
(mv "$ i" "crypto- $ i")
mv: not stat '$ i': нет такого файла или каталога
И наконец, я подумал, что, поскольку я использовал %
для ссылки на i
в первый раз, я долженпозже снова используйте %
и попытайтесь:
for %i in (*.png) do (mv "%i" "crypto-%i")
Этот вариант сработал, и все файлы были успешно переименованы.
Мой вопрос: почему сработала последняя команда идругие не сделали?Почему существует так много разных синтаксисов, которые работают только в определенных случаях?Каковы эти случаи?Почему вы ставите скобки иногда, а иногда нет?Почему вы ставите точки с запятой, а иногда нет?В чем разница между $i
, %i
и %%i
?