批处理脚本错误 - mkdir无法使用完全限定的目录路径

时间:2017-03-10 12:05:53

标签: batch-file mkdir

我尝试使用批处理脚本在共享网络目录中的多个级别创建目录,但是当我提供完全限定的网络路径时它无法正常工作,而只有在我使用映射的驱动器名称时它才有效。但我不能使用映射的驱动器名称,因为生产设置不允许映射驱动器。见下面的例子。

我试图运行这个批处理文件但是它失败并显示错误消息""

mk_dir.bat

@echo off
mkdir "\\hostname.com\shared_dir\Folder_Level_1\Folder_Level_2\Folder_Level_3\Folder_Level_4"

我有" \ hostname.com \ shared_dir"映射到驱动器的路径的一部分' U'如果我改变我的脚本如下,它的工作原理。但我不想使用这样的映射驱动器。

mk_dir.bat

@echo off
mkdir "U:\Folder_Level_1\Folder_Level_2\Folder_Level_3\Folder_Level_4"

你能为这个问题建议一个解决方案吗?注意我不能使用PowerShell脚本。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找命令pushdpopd

@echo off
setlocal EnableExtensions
pushd "\\hostname.com\shared_dir"
mkdir ".\Folder_Level_1\Folder_Level_2\Folder_Level_3\Folder_Level_4"
popd
endlocal

如果共享目录可能不存在,您应该使用:

@echo off
setlocal EnableExtensions
pushd "\\hostname.com\shared_dir" && (
    mkdir ".\Folder_Level_1\Folder_Level_2\Folder_Level_3\Folder_Level_4"
    popd
)
endlocal