Как извлечь часть строки, используя только переменные в пакетном файле? - PullRequest
1 голос
/ 29 февраля 2020

Может быть, я пытаюсь упростить вещи. Возникли проблемы при удалении части переменной, которая будет использоваться в качестве имени пути. Цель состоит в том, чтобы перенести все из папок (и вложенных) в несколько профилей 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. Предполагается, что папка резервной копии уже создана

1 Ответ

0 голосов
/ 29 февраля 2020

Все еще не уверен, как правильно его раздеть. Просто оказалось, что эффективнее не включать диск в первую очередь.

  1. Команда dir bare списка для получения имени
  2. изменено C: на переменную пользователя, если установлена ​​другая буква

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

)

Строго говоря, не ответ, а более чистое решение проблемы root. Все еще не уверен, как правильно удалить информацию.

...