批量创建网络文件夹中的文件夹

时间:2016-04-27 13:57:18

标签: windows batch-file

我做了一个小批量创建一个包含当前日期(年/月/日)的文件夹。 这是代码:

mkdir %date:~-4,4%_%date:~-7,2%_%date:~0,2%

但是当我在网络文件夹中使用它时它不起作用 例如“\ 192.168.1.100 \ 01-SCHEMA”

我该怎么办?谢谢! :) 丹尼斯

2 个答案:

答案 0 :(得分:2)

为网络共享分配一个临时的驱动器号并对其进行处理:

NET USE Z: \\192.168.1.100\01-SCHEMA
mkdir z:\%date:~-4,4%_%date:~-7,2%_%date:~0,2%
NET USE Z: /DELETE

或者稍微简单一点,let PUSHD / POPD do the same for you

PUSHD \\192.168.1.100\01-SCHEMA
mkdir %date:~-4,4%_%date:~-7,2%_%date:~0,2%
POPD

现在删除的评论的另一种可能性是在命令中使用整个网络路径:

mkdir \\192.168.1.100\01-SCHEMA\%date:~-4,4%_%date:~-7,2%_%date:~0,2%

更新/后续行动:在这种情况下的一般方式 - 如问题所示 - 将评估所有网络共享并迭代它们。如果您确定确实想要包含所有份额,请使用以下代码(需要将其放入.bat文件中)。使用NET VIEW \\192.168.1.100预先检查共享列表。

@ECHO OFF
SET HOST=192.168.1.100
FOR /F "tokens=1" %%G IN ('NET VIEW \\%HOST% ^| FINDSTR Disk') DO (
    MKDIR "\\%HOST%\%%G\%date:~-4,4%_%date:~-7,2%_%date:~0,2%"
)

后续行动#2:为了以独立于实际网络路径的方式在网络共享上/上编程创建文件夹,这一行就足够了:

MKDIR "%~dp0%date:~-4,4%_%date:~-7,2%_%date:~0,2%"

它的工作原理是%~dp0,如果从网络共享运行,它将扩展到当前正在运行的脚本的驱动器号和路径,将为您提供UNC路径。所以这个解决方案或多或少类似于这个答案第一部分的方法#3。

答案 1 :(得分:0)

E:\Test\New folder>mkdir "E:\Test\New Folder\""Creating Test Folder"

“” 之间不要留任何空格。