Я пытаюсь создать командный файл, который ищет PST-файлы, а затем перемещает их в определенное место. Пока это то, что у меня есть. Пожалуйста помоги.Как создать путь к переменной, а затем переместить этот файл
cd \
setlocal enabledelayedexpansion
for /r %%i in (*.pst) do (
::echo %%~i
set MyPath=%i%
move "%MyPath%" "C:\users\zack.vigrass\desktop\"
)
endlocal
PAUSE
Редактировать: Я не понимал, что не задал вопрос. В основном я спрашивал, почему он возвращает пустой файл вместо предполагаемого .pst-файла.
Почему бы не «переместить %% i' напрямую? И я думаю, '% i%' - это просто опечатка здесь в вашем примере? Если все это не применяется: укажите свою конкретную проблему, в настоящее время вы только указываете факты и не задаете вопрос. – Marged
еще одна жертва знаменитой ловушки с задержкой расширения (http://stackoverflow.com/a/30284028/2152082) ... (и, конечно же, это опечатка, которую отметил @Marged) – Stephan
set «MyPath = %% i» (с qoutes вокруг и '%' исправлено), поэтому любые конечные пробелы больше не станут частью значения MyPath' ... – aschipfl