m.k*_*nky 8 windows command-line mkdir
@echo off
set "var=string"
set "today=%date:~10,4%-%date:~7,2%-%date:~4,2%"
set "path_backup=\\SGSINWPDFS01v\SG\OTHERS\IT\OTHERS\WORKSTATIONS\SCHEDULE"
set "path_sourcepst01=AppData\Local\Microsoft\Outlook"
set "path_sourcepst02=Desktop"
set "path_sourcepst03=My Documents\PST"
set "path_sourcepst04=My Documents\Outlook"
set "path_sourcepst05=My Documents\Outlook Files"
mkdir "%path_backup%\%username%\%today%"
mkdir "%path_backup%\%username%\%today%\PST"
mkdir "%path_backup%\%username%\%today%\PST\%path_sourcepst01%"
mkdir "%path_backup%\%username%\%today%\PST\%path_sourcepst02%"
mkdir "%path_backup%\%username%\%today%\PST\%path_sourcepst03%"
mkdir "%path_backup%\%username%\%today%\PST\%path_sourcepst04%"
mkdir "%path_backup%\%username%\%today%\PST\%path_sourcepst05%"
Run Code Online (Sandbox Code Playgroud)
我按照上面的说法修改了脚本.我仍然无法在sourcepst01,03,04和05处创建文件夹.sourcepst02工作正常.
看来我不能MKDIR整个路径,系统混淆,必须逐一做.我在这里错过了什么吗?
添加行:
setlocal enableextensions
Run Code Online (Sandbox Code Playgroud)
就在@echo off
批处理文件的行之后.这样就可以mkdir
创建任何中间目录.
输出摘录自help mkdir
:
If Command Extensions are enabled MKDIR changes as follows:
MKDIR creates any intermediate directories in the path, if needed.
For example, assume \a does not exist then:
mkdir \a\b\c\d
is the same as:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
which is what you would have to type if extensions were disabled.
Run Code Online (Sandbox Code Playgroud)
在路径周围加上引号.
mkdir "%foo%\%bar%\%somename%"
Run Code Online (Sandbox Code Playgroud)
问题是名称中有空格,而mkdir将它们解释为两个参数而不是单个名称.引号将强制它将所有内容解释为单个路径.
归档时间: |
|
查看次数: |
26629 次 |
最近记录: |