DOSバッチ処理は、UNCパスを現在のディレクトリとする解決方法をサポートしていません。

2017 ワード

雑談は少なく言って、直接コードをつけて、ネット上の隣の人を開けます→全体のネット→Microsoft Windows Network→作業グループで当機の対応するコンピュータを探し当てて、次のバッチの処理コードをダブルクリックしてテストします:
現在のディレクトリを表示します。

cd /d %~dp0
echo %cd%

pushd %~dp0
echo %cd%
popd
pause
cdコマンドを使用してUNCディレクトリにジャンプし始めると、「CMDはUNCパスを現在のディレクトリとしてサポートしていません。」cdコマンドはローカルディレクトリでしかジャンプできませんが、UNCディレクトリにジャンプできません。
どうすればいいですか?第二のコマンドを参照してください。pusshdを使用して、UNCパスをコスト的にZディスクにマッピングします。このコマンドを実行すると、次のプロンプトは元のC:\>ではなく、Z:\>を使用して、すでに成功したUNCパスをマッピングします。
この時、ローカルディレクトリを操作するようにUNCディレクトリを操作できます。図に示すように、cd、dirなどのコマンドは使用できます。
最後に、実行後、popdを使ってマッピングを切断することを忘れないでください。オフしたら、また元のC:\Windowsになりました。
もう一つのより良い解決方法は、直接にバッチ処理があるディレクトリの前に変数%~dp 0を追加すればいいです。バッチの名前を呼出ししてもコピーしてもいいです。
ただし、一般的にファイル共有は読み取り専用共有で、UNCディレクトリは書き込み不可ですので、echo>file 1.txtのような文は、fiel 1.txtの前に%~dp 0を追加しないでください。デフォルトは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パスの解決はサポートされていません。
今日は私のwin 7システムの中で共有ファイルのパスの中でbatスクリプトを実行しました。次のようなエラーメッセージがありました。

内容は:
現在のディレクトリである以上のパスでCMD.EXEを起動しました。UNCパスはサポートされていません。デフォルトはWindowsディレクトリに設定します。
出現の原因:
ネットの経路の下にあるためです。普通のディレクトリであれば大丈夫です。
解決方法:
レジストリに値を追加すればいいです。パスは以下の通りです。
HKEY_CURRENT_US ER\Software\Microsoft\Command Processor
付加値DiscableUNCCheck、タイプはREG_です。DWORDはこの値を1(16進)に設定します。
バッチファイルは以下の通りです。
reg add「HKEY_CURRENT_USER\Software\Microsoft\Command Processor"/v"Dispable UNCCHeck"/t"REG_DWORD'/d'1'/f
この文章はここまで紹介されました。