Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 活动设置-编辑文件的脚本未运行/工作_Batch File_Vbscript - Fatal编程技术网

Batch file 活动设置-编辑文件的脚本未运行/工作

Batch file 活动设置-编辑文件的脚本未运行/工作,batch-file,vbscript,Batch File,Vbscript,具有以下批处理文件: cscript Myvb.vbs "C:\Users\%username%\AppData\LocalLow\file.ini" "Things" "Stuff" vb脚本文件: Const ForReading = 1 Const ForWriting = 2 strFileName = WScript.Arguments(0) strFindText = WScript.Arguments(1) strNewText = WScript.Arguments(1)

具有以下批处理文件:

cscript Myvb.vbs "C:\Users\%username%\AppData\LocalLow\file.ini" "Things" "Stuff"
vb脚本文件:

Const ForReading = 1
Const ForWriting = 2

strFileName = WScript.Arguments(0) 
strFindText = WScript.Arguments(1) 
strNewText = WScript.Arguments(1) & vbCrLf & WScript.Arguments(2)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)

strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strFindText, stfFindText&strNewText)

Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText
objFile.Close

Set objFile = Nothing
和批处理文件以设置ActiveSetup:

@echo off
REM copy batch file
xcopy Mybat.bat* %SYSTEMROOT%\
xcopy Myvb.vbs* %SYSTEMROOT%\

REM create active setup component to run batch file
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\MySetup" /v "Version" /t REG_SZ /d "1" /f 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\MySetup" /v "StubPath" /t REG_SZ /d "%SYSTEMROOT%\Mybat.bat" /f
如果手动执行mybat,则可以很好地编辑该文件。但是,文件在登录后不会更改。我取消了对文件的更改,并在测试之间清除了配置文件中的活动设置注册表项


我是否缺少权限问题?%username%不是我所期望的吗?

通过在bat文件中指示vbs的完整路径,实现了这一点

cscript "%~dp0Myvb.vbs" "C:\Users\%username%\AppData\LocalLow\file.ini" "Things" "Stuff"

我认为你必须用老式的方法来解决这个问题:试着找出哪一步失败了。首先让批处理文件记录其对日志文件的调用;例如:
echo>>C:\MyLog\log.txt%DATE%%TIME%MyBat BEGIN
echo>>C:\MyLog\log.txt%DATE%%TIME%MyBat END
。不要忘了提前创建目录,并设置全局读/写访问权限。您可能还必须使用日志文件对其进行种子设定,并在那里设置权限。如果日志文件中同时显示开始行和结束行,请转到
.vbs
文件并在那里添加日志记录语句。