BAT-файл, чтобы получить папку пути к каталогу служб и скопировать файлы из этой папки в подпапку того же каталога - PullRequest
0 голосов
/ 15 января 2019

Я хочу создать файл .bat для следующих действий в следующем порядке:

1) Получить путь к каталогу службы

2) скопировать все файлы из этого каталога (только файлы) в подпапку с именем «save»

Имя службы существует, и если я запускаю "wmic service where "name='SERVICENAME'" get PathName", я получаю путь, но по некоторым причинам .bat-файлы не работают должным образом.

Пока у меня есть:

@echo off
setlocal
:PROMPT
SET /P UPDATESERVICE=Update Service (Y/[N])?
IF /I "%UPDATESERVICE%" NEQ "Y" GOTO END

FOR /F "tokens=*" %%g IN ('wmic service where "name='SERVICENAME'" get PathName') do (SET SERVICEPATH=%%g)

FOR %%a IN ("%SERVICEPATH%") DO FOR %%b IN ("%%~dpa.") SERVICEPATH=%%~dpb&%%~nxb
if not exist "%SERVICEPATH%\Save\" mkdir %SERVICEPATH%\Save
echo f | xcopy %SERVICEPATH%* %SERVICEPATH%\Save* /L /R 

:END
endlocal

Этот сценарий должен получить путь к каталогу службы, скопировать из него все файлы и поместить их в подпапку с именем «save». Идея состоит в том, чтобы сделать резервную копию существующих файлов в подкаталоге и скопировать новые файлы.

1 Ответ

0 голосов
/ 15 января 2019

Я получил это работает с этим

@echo off

setlocal

:PROMPT

SET /P UPDATESERVICE=Update Service (Y/[N])?
IF /I "%UPDATESERVICE%" NEQ "Y" GOTO END

FOR /F "tokens=*" %%g IN ('wmic service where "name='MyServiceName'" get PathName') do (SET SERVICEPATH=%%g)

FOR %%a IN ("%SERVICEPATH%") DO FOR %%b IN ("%%~dpa.") do SERVICEPATH=%%~dpb&%%~nxb

if not exist "%SERVICEPATH%\Save\" mkdir %SERVICEPATH%\Save

echo f | xcopy /f /y %SERVICEPATH%* %SERVICEPATH%\Save*

:END

endlocal
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...