如何从网络驱动器上的 "sent to " 文件夹中 运行 批处理文件而不显示“不支持 UNC 路径”消息?

How to run batch file from "sent to " folder on network drive without “UNC path are not supported” message?

首先,我知道这个网站上已经有一些类似的问题。我读过它们,但是 none 解决了我的问题。

这是我想做的。我想在我的 "send to" 文件夹中放置一个 .bat 小脚本,这样我就可以通过右键单击菜单执行它。具体来说,我想右键单击一个特定的文件夹,我的扫描仪应该在这个目录中保存一个文件。我为此使用的软件名为 naps2.

我使用这个脚本:

cd /d %1
@ echo off

SET fname=""
echo.%fname%
SET /P fname=Please enter the filename (no sapces!):

if NOT fname=="" (
        SET fname=%fname: =_%

  )

if  %fname%=="" (

    echo "No filename entered, using current date info instead."
    naps2.console -o "new_scan_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~6,2%.pdf"

) else (
    echo.%fname%    
    naps2.console -o %fname%".pdf"
  )

echo scan complete!

Timeout 2  

只要我 运行 它在本地文件夹中就可以正常工作。以前在网盘上能用,现在不行了

在这种情况下,我收到此错误消息:

CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht unterstützt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.

有问题的文件夹实际上是通过 Map network drive 映射到驱动器号的。

在这个link中有一个"load the network share as if it's loaded from one of your local drives"的提示。我想这意味着同样的事情。

我可以做些什么来使我的脚本在所有情况下都独立于这些设置中的任何一个工作吗? (即在我的本地驱动器和网络驱动器上)

cd /d %1 语句更改为 pushd "%~1" 然后它将正常工作。因为 cd 只能在本地路径上工作,不能在 UNC 路径上工作。