问题
I am trying to run a batch file from a network share, but I keep getting the following message: \"UNC path are not supported. Defaulting to Windows directory.\" The batch file is located on \\\\Server\\Soft\\WPX5\\install.bat
. While logged in as administrator, from my Windows 7 Desktop, I navigate to \\\\Server\\Soft\\WP15\\
and double click on install.bat, that\'s when I get the \"UNC path are not supported.\" message. I found some suggestions online stating that mapping drive will not work, but using a symbolic link will solve this issue, but the symbolic link didn\'t work for me. Below is my batch file content, I would appreciate any assistance that can help me accomplish what I am trying to do. Basically, I want to be able to run the batch file from \\\\Server\\Soft\\WP15\\install.bat
.
Batch file content
mklink /d %userprofile%\\Desktop\\WP15 \\\\server\\soft\\WP15
\\\\server\\soft\\WP15\\setup.exe
robocopy.exe \"\\\\server\\soft\\WP15\\Custom\" /copyall \"C:\\Program Files (x86)\\WP\\Custom Templates\"
Regedit.exe /s \\\\server\\soft\\WPX5\\Custom\\Migrate.reg
Also, how do I remove the symbolic link after the install is completed?
回答1:
PUSHD and POPD should help in your case.
@echo off
:: Create a temporary drive letter mapped to your UNC root location
:: and effectively CD to that location
pushd \\server\soft
:: Do your work
WP15\setup.exe
robocopy.exe "WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s WPX5\Custom\Migrate.reg
:: Remove the temporary drive letter and return to your original location
popd
Type PUSHD /?
from the command line for more information.
回答2:
There's a registry setting to avoid this security check (use it at your own risks, though):
Under the registry path
HKEY_CURRENT_USER
\Software
\Microsoft
\Command Processoradd the value DisableUNCCheck REG_DWORD and set the value to 0 x 1 (Hex).
Note: On Windows 10 version 1803, the setting seems to be located under HKLM: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
回答3:
I feel cls
is the best answer. It hides the UNC message before anyone can see it. I combined it with a @pushd %~dp0
right after so that it would seem like opening the script and map the location in one step, thus preventing further UNC issues.
cls
@pushd %~dp0
:::::::::::::::::::
:: your script code here
:::::::::::::::::::
@popd
Notes:
pushd
will change your working directory to the scripts location in the new mapped drive.
popd
at the end, to clean up the mapped drive.
回答4:
Basically, you can't run it from a UNC path without seeing that message.
What I usually do is just put a CLS
at the top of the script so I don't have to see that message. Then, specify the full path to files in the network share that you need to use.
回答5:
I needed to be able to just Windows Explorer browse through the server share, then double-click launch the batch file. @dbenham led me to an easier solution for my scenario (without the popd
worries):
:: Capture UNC or mapped-drive path script was launched from
set NetPath=%~dp0
:: Assumes that setup.exe is in the same UNC path
%NetPath%setup.exe
:: Note that NetPath has a trailing backslash ("\")
robocopy.exe "%NetPath%Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s %NetPath%..\WPX5\Custom\Migrate.reg
:: I am not sure if WPX5 was typo, so use ".." for parent directory
set NetPath=
pause
回答6:
Instead of launching the batch directly from explorer - create a shortcut to the batch and set the starting directory in the properties of the shortcut to a local path like %TEMP% or something.
To delete the symbolic link, use the rmdir command.
回答7:
I ran into the same issue recently working with a batch file on a network share drive in Windows 7.
Another way that worked for me was to map the server to a drive through Windows Explorer: Tools -> Map network drive. Give it a drive letter and folder path to \yourserver. Since I work with the network share often mapping to it makes it more convenient, and it resolved the “UNC path are not supported” error.
回答8:
My situation is just a little different. I'm running a batch file on startup to distribute the latest version of internal business applications.
In this situation I'm using the Windows Registry Run Key with the following string
cmd /c copy \\serverName\SharedFolder\startup7.bat %USERPROFILE% & %USERPROFILE%\startup7.bat
This runs two commands on startup in the correct sequence. First copying the batch file locally to a directory the user has permission to. Then executing the same batch file. I can create a local directory c:\InternalApps and copy all of the files from the network.
This is probably too late to solve the original poster's question but it may help someone else.
回答9:
This is the RegKey I used:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001
回答10:
My env windows10 2019 lts version and I add this two binray data ,fix this error
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
DisableUNCCheck value 1
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor
DisableUNCCheck value 1
回答11:
Editing Windows registries is not worth it and not safe, use Map network drive
and load the network share as if it's loaded from one of your local drives.
来源:https://stackoverflow.com/questions/9013941/how-to-run-batch-file-from-network-share-without-unc-path-are-not-supported-me