您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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
關于“DOS批處理不支持將UNC路徑作為當前目錄怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。