如何仅使用批处理文件中的变量提取字符串的一部分?

问题描述 投票:0回答:1

也许我正试图过分简化。无法删除用作路径名的变量的一部分。目标是将所有内容从多个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
)

注意:

  1. 不确定删除C:\ Users \的最佳方法,所以我只将用户名保留为变量(假定var是命令)
  2. 我正在尝试这样做,而不必在文件中写入字符串并读回它
  3. 这假定已经创建了备份文件夹
batch-file variables environment-variables backup
1个回答
0
投票

仍然不确定如何正确剥离它。刚发现不首先包含驱动器会更有效。

  1. 列出项目dir裸命令以获取名称
  2. 将C:更改为用户变量(如果安装在其他字母上,则为该变量)>>
  3. 
    FOR /f "tokens=*" %%a in ('dir /b /a:d-s-l "%SystemDrive%\Users"') DO (
    
        mkdir "%USERPROFILE%\Desktop\Backup\%%a\folderx"
        mkdir "%USERPROFILE%\Desktop\Backup\%%\foldery"
    
        xcopy "%SystemDrive%\Users\%%a\Desktop\folderx" "%USERPROFILE%\Desktop\Backup\%%a\folderx" /e /y
        xcopy "%SystemDrive%\Users\%%a\Desktop\foldery" "%USERPROFILE%\Desktop\Backup\%%a\foldery" /e /y
    
    )
    

严格来说,这不是答案,而是对根本问题的更干净的解决方案。仍然不确定如何正确地剥离信息。

© www.soinside.com 2019 - 2024. All rights reserved.