У меня есть пакетный файл, который перемещает файлы из определенной папки в текущую папку (папку, в которой выполняется команда), но если я создаю ссылку на рабочий стол для этого пакетного файла и пытаюсь запустить его, файлы перемещаются в папка, в которой находится пакетный файл, а не папка, в которой выполняется команда. С чего бы это? Есть ли способ исправить это?
2 ответа
Один из способов обойти это - использовать контекстное меню "Отправить".
Если вы «запустите> запустите» shell:sendto
, вы попадете в волшебную папку, где хранятся ярлыки отправки. Затем вы можете добавить ярлык к вашему пакетному файлу на рабочий стол, а затем перетащить ярлык пакетного файла в эту папку (разрешения могут помешать вам добавить напрямую).
Когда пакетный файл запускается с помощью ярлыка, параметр %1
будет установлен в папку или файл, который вы выделили.
Поэтому, если я выделю папку «c:\bar», а затем «Sendto> Foo.bat»:
foo.bat:
@echo off
echo %1
pause
Будет излучать:
C:\Bar
Если командный файл был:
move M:\logs\*.* %1
Вы получите правильный результат, если вы не выделите имя файла. Поэтому сначала проверьте на ошибки и здравомыслие.