2017-02-10 98 views
0

我需要创建一个批处理文件来查看文件夹“Templates”是否存在于文件夹“C:\ UserName \ AppData \ Roaming \ Microsoft \ Templates“它应该通过”C:\ users“文件夹中的每个用户名。如果“模板”文件夹不存在,它应该创建它。我有下面的命令,但它不会在所有C:\用户中创建此文件夹。我想创建一个批处理文件来检查子文件夹是否存在,它不会创建它

FOR /d %%G IN (*.*) DO (IF NOT EXIST TEMPLATES\ (md templates C:\users\%%G\appdata\roaming\microsoft\)) 

回答

0
@echo off 
cd "C:\Users" 
for /d %%a in (*) do (
if not exist "%%a\AppData\Roaming\Microsoft\Templates" md "%%a\AppData\Roaming\Microsoft\Templates" 
) 

,并验证是否具有管理员权限,也...

+0

这工作。谢谢。 – KentE

0

编辑:

for /d %%g in ("C:\users\*") do (
    md "%%~g\Appdata\Roaming\Microsoft\Templates" >nul 2>&1 
) 
+0

“如果没有'模板'为当前用户,然后为所有用户创建它“ - 可能不是,想要什么。 – Stephan

+0

@Stephan哦。我想我误解了他的代码。我会解决的。谢谢你指出。 –

0

md /?:你有两个参数,所以您将创建两个目录。一个(templates)在您的工作目录中,另一个在用户的文件夹中。

你并不需要检查,如果该文件夹存在,md将只是创建一个错误信息,如果这样做,您可以轻松地重定向到必杀技:

FOR /d %%G IN ("C:\USERS\*") DO (mkdir "%%G\appdata\roaming\microsoft\template" 2>nul) 
+2

因为变量%% G已包含该数据,所以在%% G之前不需要“C:\ users”。 –

+0

对 - 谢谢你,@ACatNamedTiger – Stephan

相关问题