【问题标题】:Script not able to execute because of net location由于网络位置,脚本无法执行
【发布时间】:2018-11-09 08:21:42
【问题描述】:

我无法执行此脚本:

@ECHO off
for /R %%G in (*INF*.txt) do (
    pushd "%%~dpG"
    FOR %%H IN (*RES*.txt) DO (
        copy "%%~G" + "%%~H" "%date% %time:~0,2%-%time:~3,2%-%time:~6,2%.csv"
        ren "%%~G" "%%~nxG.ok"
        ren "%%~H" "%%~nxH.ok"
    )
    popd
)

我有以下消息:

"\W12DC-FILE\MA-Datan\CMMWS\CAQ-Import-Rauheit-Kontur-Rondcom\Konturograph" CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet。 UNC-Pfade werden nicht unterstützt。 Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt。

这意味着:

CMD.exe 使用以下路径启动。不支持 UNC-Pahts。取而代之的是作为实际目录集的 Windows 目录。

如果我在本地执行脚本,它可以正常工作。

我怎样才能让它工作?

【问题讨论】:

  • 你是如何执行脚本的?您似乎正试图从 UNC 路径调用 cmd.exe... 可能来自 INF.txt 的内容结果 请显示 INF.txtRES.txt 内容的示例。
  • 我建议您将%%~G 的两个实例都更改为%%~nxG,因为您已经在目录中,所以不需要使用完整路径!
  • 错误信息让您感到困惑的是什么?

标签: windows batch-file


【解决方案1】:

就像 Squashman 说的,你可以从 UNC 路径启动一个批处理文件,但是 cmd.exe 无法处理它们,因此 windows 目录将用作当前路径。

可以通过%~dp0 访问原始起始 UNC 路径。

您可以使用pushd 为它们创建临时驱动器号,但%%~dpG 不起作用,因为对于来自"*INF*.txt" 的示例路径,您会得到
C:\W12DC-FILE\MA-Daten\CMMWS\CAQ-Import-Rauheit-Kontur-Rondcom\Konturograph

但是,将 COPY 替换为 XCOPY 会更容易,因为它还可以处理 UNC 路径

...
XCOPY "%%~dp0\%%~G"  ...
ren "%%~dp0\%%~G" "%%~dp0\%%~G.ok"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 2021-12-30
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2016-04-14
    相关资源
    最近更新 更多