У меня есть пакетный файл, который перемещает файлы из определенной папки в текущую папку (папку, в которой выполняется команда), но если я создаю ссылку на рабочий стол для этого пакетного файла и пытаюсь запустить его, файлы перемещаются в папка, в которой находится пакетный файл, а не папка, в которой выполняется команда. С чего бы это? Есть ли способ исправить это?

2 ответа2

2

Есть два способа это исправить.

Вы можете изменить команду в вашем пакетном файле, чтобы явно назвать папку:

move M:\Logs\*.* C:\NewLogFolder

Или вы можете изменить место начала в ярлыке на новый пункт назначения:

2

Один из способов обойти это - использовать контекстное меню "Отправить".

Если вы «запустите> запустите» shell:sendto , вы попадете в волшебную папку, где хранятся ярлыки отправки. Затем вы можете добавить ярлык к вашему пакетному файлу на рабочий стол, а затем перетащить ярлык пакетного файла в эту папку (разрешения могут помешать вам добавить напрямую).

Когда пакетный файл запускается с помощью ярлыка, параметр %1 будет установлен в папку или файл, который вы выделили.

Поэтому, если я выделю папку «c:\bar», а затем «Sendto> Foo.bat»:

foo.bat:

@echo off
echo %1
pause

Будет излучать:

C:\Bar

Если командный файл был:

move M:\logs\*.* %1

Вы получите правильный результат, если вы не выделите имя файла. Поэтому сначала проверьте на ошибки и здравомыслие.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .