通过快捷方式运行的批处理文件更改目标文件夹

通过快捷方式运行的批处理文件更改目标文件夹

我有一个批处理文件,可以将文件从特定文件夹移动到当前文件夹(运行命令的文件夹),但如果我为该批处理文件创建桌面链接并尝试运行它,文件就会移动到批处理文件所在的文件夹,而不是运行命令的文件夹。为什么会这样?有什么办法可以纠正这个问题吗?

答案1

有两种方法可以解决这个问题。

您可以更改批处理文件中的命令以明确命名文件夹:

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

只要您不突出显示文件名,您就会得到正确的结果。因此请先测试错误和健全性。

相关内容