.bat文件以获取“服务目录路径”文件夹,并将文件从该文件夹复制到同一目录的子文件夹

时间:2019-01-15 12:10:06

标签: windows batch-file cmd

我想创建一个.bat文件,以按以下顺序执行以下操作:

1)获取服务的目录路径

2)将该目录中的所有文件(仅文件)复制到名为“保存”的子文件夹中

该服务名称存在,并且如果我运行"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

此脚本应获取服务的目录路径,并从中复制所有文件,然后将其放置到名为“保存”的子文件夹中。想法是对子目录中的现有文件进行备份,然后复制新文件。

1 个答案:

答案 0 :(得分:0)

我可以使用它

@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