【发布时间】:2020-06-13 10:00:51
【问题描述】:
也许我试图把事情过分简单化。无法删除要用作路径名的变量的一部分。目标是将多个 Windows 配置文件上的文件夹(和子文件夹)中的所有内容转移到单个配置文件中。
我可以复制所有内容,但不能告诉它放在哪里。也碰巧第一次尝试使用 robocopy。我想在桌面上创建一个文件夹,命名为设备上每个用户的用户名,然后复制所有内容。
for /d %%a in (C:\Users\*) do (
set var=%%a
var=${var#*s/ }
mkdir "%USERPROFILE%\Desktop\Backup\%var%\folderx"
xcopy "%%a\Desktop\folderx" "%USERPROFILE%\Desktop\Backup\%var%\folderx" /E /Y
)
注意事项:
- 不确定删除 C:\Users\ 的最佳方法,所以我只保留用户名作为变量(假设 var 是命令)
- 我正在尝试这样做,而不必将字符串写入文件并读回
- 假设备份文件夹已经创建
【问题讨论】:
-
打开command prompt,运行
for /?并阅读输出帮助。%~nxI引用当前分配给循环变量I的文件/文件夹字符串的最后一个反斜杠之后的字符串,在您的情况下,这将是%HomeDrive%\Users中文件夹的名称。在您的情况下,您必须在批处理文件中使用%%~nxa来引用目录名称,并且您在阅读 FOR 的帮助并查看此修饰符字符串后知道为什么a和A是循环变量没有好的选择。循环变量区分大小写,但修饰符不区分大小写。
标签: batch-file variables environment-variables backup