DOS批处理不支持将UNC 路径作为当前目录的解决方法

废话少说,直接上代码,打开网上邻居→整个网络→Microsofi Windows Network→在工作组找到本机对应的电脑,双击测试以下批处理代码:
显示当前目录.bat

cd /d %~dp0
echo %cd%

pushd %~dp0
echo %cd%
popd
pause

可以看到,在开始使用cd命令跳转到UNC目录时,会出现"CMD 不支持将 UNC 路径作为当前目录。"的提示,即cd命令只能在本地目录跳转,却不能跳转到UNC目录。

那如何是好?看第二个命令:pushd,使用"pushd %~dp0"可以将UNC路径映射成本地的Z盘,执行该命令后,下一个提示符就不是原来的C:\>,而是Z:\>,即已经映射成功的UNC路径。

这时,就可以像操作本地目录一样操作UNC目录了(实际上在“我的电脑”中会出现一个Z盘的映射,相当于本地硬盘)。如图中所示,cd、dir等命令均可以使用。

最后,在执行完操作后,别忘了使用popd将映射断开。断开后,提示符又变成了原来的C:\Windows>。

另外一个更好的解决办法:直接在批处理所在的目录前面加上变量%~dp0即可。无论是调用批处理名字,还是拷贝,都可以。
但是要注意,一般地文件共享是只读共享,UNC目录不可写,因此echo >file1.txt这样的语句,fiel1.txt前面不要加%~dp0,默认用C:\windows目录即可。

@echo off
%~dp0bootice\BOOTICEx86 /DEVICE=0 /mbr /install /type=GRUB4DOS /v045 /boot_file=grldr /quiet
echo n|copy /-y %~dp0grub\grldr.* %systemdrive%\
echo n|copy /-y %~dp0grub\menu.lst %systemdrive%\
attrib +h %systemdrive%\grldr.*
attrib +h %systemdrive%\menu.lst
ECHO ┌─────────────────────────────────┐
ECHO │已经把grub4dos写入硬盘MBR! 按任意键退出。     │
ECHO └─────────────────────────────────┘
pause >nul

解决UNC路径不受支持问题 补充

今天在我的win7系统中在一个共享文件路径中执行bat脚本遇到了如下的错误提示:

内容就是:

用作为当前目录的以上路径启动了 CMD.EXE。 UNC 路径不受支持。默认值设为 Windows 目录。

出现的原因:

估计是因为在 网络路径 下所致,如果在普通目录下就没这种问题。

解决方法:

在注册表中,添加一个值即可.路径如下:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
添加值 DisableUNCCheck, 类型为 REG_DWORD 并将该值设置为1 (十六进制)。

批处理文件如下:(虽然运行的时候会有正确提示,但是实际上却没加进去还需要修改)

reg add "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v "DisableUNCCheck" /t "REG_DWORD" /d "1" /f

这篇文章就介绍到这了。

(0)

相关推荐

  • DOS批处理不支持将UNC 路径作为当前目录的解决方法

    废话少说,直接上代码,打开网上邻居→整个网络→Microsofi Windows Network→在工作组找到本机对应的电脑,双击测试以下批处理代码: 显示当前目录.bat cd /d %~dp0 echo %cd% pushd %~dp0 echo %cd% popd pause 可以看到,在开始使用cd命令跳转到UNC目录时,会出现"CMD 不支持将 UNC 路径作为当前目录."的提示,即cd命令只能在本地目录跳转,却不能跳转到UNC目录. 那如何是好?看第二个命令:pushd,使

  • spring cloud feign不支持@RequestBody+ RequestMethod.GET报错的解决方法

    1.问题梳理: 异常:org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 很明显是最终feign执行http请求时把这个方法认定为POST,但feign client中又定义了RequestMethod.GET 或 @GetMapping,冲突导致报错 那么为什么feign会认为这个方法是post呢? 源码追踪: 1.我们从feignClient注解

  • Pycharm 文件更改目录后,执行路径未更新的解决方法

    今天在使用Pycharm的时候,由于文件过多,我对目录下的文件做了归类,改动了一些文件的路径,结果后来执行的时候,出现了路径找不到的错误. 新建一个test.py文件 此时打印test.py的路径为: /Users/hyl/Documents/workspace/python/version3+/untitled 将test.py文件放入lib文件夹下 此时打印test.py的路径依旧是: /Users/hyl/Documents/workspace/python/version3+/untit

  • vue webpack打包后图片路径错误的完美解决方法

    项目用run dev build 打包后,发现很多图片都不显示,在本地是没有问题的啊!找原因发现通过webpack+vuecli默认打包的css.js等资源,路径都是绝对的. 因为我们的图片路径都是经历过文件夹的,在本地引用图片是绝对路径,但打包后因为把配置的static文件夹当成了根路径,所以很多图片找不到都不显示. 解决办法如图: (1). 修改 assetsPublicPath: './' (2).打开webpack.prod.conf.js,在output:增加 publicPath:

  • vue webpack build资源相对路径的问题及解决方法

    默认情况webpack+vue-cli打包的css.js等静态资源路径都是绝对的,即static在根目录下,如果部署到带有文件夹目录的项目中,资源路径就会出错. 如图: 解决方法: 在webpack.prod.conf.js中,output中添加或者修改为 publicPath: './': output: { publicPath: './', path: config.build.assetsRoot, filename: utils.assetsPath('js/[name].[chunk

  • sqlserver2017共享功能目录路径不可改的解决方法

    注意:什么路径不可改就搜索该路径进行删除注册表记录,然后重启电脑 按 win键盘+R输入 regedit 进去注册表,点击计算机按"编辑"-->查找下一个 需要等一些时间 结果出来后把搜到的结果的项删除 删除之后  按F3继续查找下一个进行删除,删除直到搜索完毕 然后把原来安装的注册表记录查找出来删除: 把含有Microsoft SQL Server字样的都删除 删除完这个再按F3查找下一个删除 删除直到按F3显示搜索完毕 接着再搜索删除记录  MSSQL 直按F3删除到显示搜索

  • Android编程使WebView支持HTML5 Video全屏播放的解决方法

    本文实例讲述了Android编程使WebView支持HTML5 Video全屏播放的解决方法.分享给大家供大家参考,具体如下: 1)需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做,具体如下: a. 如果要声明整个应用都要加速: 复制代码 代码如下: <application ... android:hardwareAccelerated ="tr

  • efang设置出现读取Serv-U路径失败330101的解决方法

    读取Serv-U路径失败330101的解决方法 我安装的易方怎么不能设置Serv-U啊? 点设置就出现 读取Serv-U路径失败330101. 谁知道这是怎么会事啊??我安装了Serv-U的...希望知道的告诉我一下 解决方法: 把serv-u的用户数据 存储到注册表里去,不是放在ini文件里

  • vue.js 打包时出现空白页和路径错误问题及解决方法

    vue-cli输入命令:npm  run  build 即可打包vue.js的项目 打包出来后项目中就会多了一个文件夹dist,下图为我们打包过后的项目 我们直接运行打包后的文件夹中的index.html文件,会看到网页一片空白,f12调试,全是css,js路径引用错误的问题. 解决:到config文件夹中打开index.js文件. 文件里面有两个assetsPublicPath属性,更改第一个,也就是更改build里面的assetsPublicPath属性: assetsPublicPath属

  • nginx如何指向本地路径及500错误解决方法

    正文 一个vite+vue3项目,想要部署到服务器上.项目build后的文件都在dist目录下,将这个目录拷贝到服务器上,然后在nginx里进行配置,如下: server { listen 3571; server_name localhost; location / { root /root/xxxx/dist/; try_files $uri $uri/ /index.html; } } 这样就可以通过服务器的公网ip+端口3571来访问这个vue项目了,如果想通过域名访问,则可以这样配置:

随机推荐