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


    DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案
    在有些时候,需要在批处理中操作UNC目录,但批处理并不能直接对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
    %~dp0booticeBOOTICEx86 /DEVICE=0 /mbr /install /type=GRUB4DOS /v045 /boot_file=grldr /quiet
    echo n|copy /-y %~dp0grubgrldr.* %systemdrive%
    echo n|copy /-y %~dp0grubmenu.lst %systemdrive%
    attrib +h %systemdrive%grldr.*
    attrib +h %systemdrive%menu.lst
    ECHO ┌─────────────────────────────────┐
    ECHO │已经把grub4dos写入硬盘MBR! 按任意键退出。 │
    ECHO └─────────────────────────────────┘
    pause >nul

  • 相关阅读:
    HTML5简易在线画图工具
    HTML Canvas 鼠标画图
    [转]javascript中style.left和offsetLeft的使用
    android中如何获取指定目录下的图片
    Android开发——Android中常见的4种线程池(保证你能看懂并理解)
    Android 文件的读取和写入
    MediaPlayer: Couldn't open /storage/emulated/0/kgmusic/download/独家记忆.mp3: java.io.FileNotFoundExcept
    Android开发-各种各样好看漂亮的进度条,指示器,加载提示汇总
    FileUriExposedException_Android7.0适配
    根据Uri获取文件的绝对路径
  • 原文地址:https://www.cnblogs.com/liuzhaoyzz/p/6037389.html
Copyright © 2020-2023  润新知