我想创建一个.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
此脚本应获取服务的目录路径,并从中复制所有文件,然后将其放置到名为“保存”的子文件夹中。想法是对子目录中的现有文件进行备份,然后复制新文件。
答案 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