代码之家  ›  专栏  ›  技术社区  ›  Sandra K

批处理文件在我的桌面上运行正常,但在虚拟桌面上运行不正常。为什么?

  •  1
  • Sandra K  · 技术社区  · 8 年前

    下列的 Check if a file exists in zip archive ,我有一个批处理文件,它处理目录中的一些文件,我在其中使用这一行:

    call zipjs.bat list -source "C:\myZip.zip" -flat yes|find /i "filename" && (
      echo file exists
      color 
    )|| (
      echo file does not exist
    )
    

    我有 zipjs.bat 在与批处理文件相同的目录中:

    桌面->MyBatch。球棒

    桌面->拉链。球棒

    MyBatch.bat 电话 拉链。球棒 在我的机器上工作正常。

    问题:

    我可以访问一个虚拟机来测试我的代码,它是一个windows桌面,上面运行着一些软件。没什么特别的。我还把 myBatch.bat 和 拉链。球棒 在同一目录下(桌面)。然而,每当我跑步时 myBatch ,它会提示“zipjs.bat不是可识别的命令”。就像 我的批次 找不到 拉链。球棒 . 可能是什么问题?

    1 回复  |  直到 8 年前
        1
  •  2
  •   npocmaka    8 年前

    如果bat以管理员权限启动,它将在system32文件夹中启动。尝试设置 cd /d "%~dp0" 在文件(cd)命令更改工作目录和 /d 切换是为了防止需要在不同驱动器之间跳转)。

    这个 %0 参数是批处理文件本身(如果 shift 命令),因此 %~dp0 你开车去 path to the file (无文件名)。

    推荐文章