psexec 未被识别为内部或外部命令,而 运行 来自 windows 调度程序的批处理文件
psexec is not recognized as an internal or external command while running a batch file from windows scheduler
我有一个 .bat
文件来启动 Windows 服务。当我 运行 它手动工作时它工作正常但是如果我 运行 它从任务调度程序它给出以下错误。
'psexec64.exe' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the file sessid.txt.
Press any key to continue . . .
我尝试了以下场景
psexec64.exe
和 psexec.exe
都试过了
- 在环境变量中添加了
psexec
路径
仍然没有运气
@echo off
setlocal enabledelayedexpansion
set username=user1
set usr=bdomain\user1
set password=2018
set machine=192.168.1.16
psexec64.exe \%machine% -u %usr% -p %password% query session %username%>D:\Service_Start\sessid.txt
set /a counter=0
for /F "tokens=* skip=1" %%a in (sessid.txt) do (
for %%b in (%%a) do (
set /a counter+=1
if !counter! == 3 (
psexec64.exe \192.168.1.16 -u bdomain\user1 -p 2018 -i %%b -d net start OracleServiceTest
)
)
)
pause;
将代码修改如下,可以正常工作了
setlocal enabledelayedexpansion
set username=user1
set usr=bdomain\user1
set password=2018
set machine=192.168.1.16
D:\PSTools\psexec64.exe \%machine% -u %usr% -p %password% query session %username%>D:\Service_Start\sessid.txt
set /a counter=0
for /F "tokens=* skip=1" %%a in (D:\Service_Start\sessid.txt) do (
for %%b in (%%a) do (
set /a counter+=1
if !counter! == 3 (
D:\PSTools\psexec64.exe \192.168.1.16 -u bdomain\user1 -p 2018 -i %%b -d net start OracleServiceTest
)
)
)
我有一个 .bat
文件来启动 Windows 服务。当我 运行 它手动工作时它工作正常但是如果我 运行 它从任务调度程序它给出以下错误。
'psexec64.exe' is not recognized as an internal or external command,
operable program or batch file.
The system cannot find the file sessid.txt.
Press any key to continue . . .
我尝试了以下场景
psexec64.exe
和psexec.exe
都试过了
- 在环境变量中添加了
psexec
路径
仍然没有运气
@echo off
setlocal enabledelayedexpansion
set username=user1
set usr=bdomain\user1
set password=2018
set machine=192.168.1.16
psexec64.exe \%machine% -u %usr% -p %password% query session %username%>D:\Service_Start\sessid.txt
set /a counter=0
for /F "tokens=* skip=1" %%a in (sessid.txt) do (
for %%b in (%%a) do (
set /a counter+=1
if !counter! == 3 (
psexec64.exe \192.168.1.16 -u bdomain\user1 -p 2018 -i %%b -d net start OracleServiceTest
)
)
)
pause;
将代码修改如下,可以正常工作了
setlocal enabledelayedexpansion
set username=user1
set usr=bdomain\user1
set password=2018
set machine=192.168.1.16
D:\PSTools\psexec64.exe \%machine% -u %usr% -p %password% query session %username%>D:\Service_Start\sessid.txt
set /a counter=0
for /F "tokens=* skip=1" %%a in (D:\Service_Start\sessid.txt) do (
for %%b in (%%a) do (
set /a counter+=1
if !counter! == 3 (
D:\PSTools\psexec64.exe \192.168.1.16 -u bdomain\user1 -p 2018 -i %%b -d net start OracleServiceTest
)
)
)