2017-08-18 96 views
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%出來是不是我所期望的?嘗試找出是哪個步驟失敗:

+0

我認爲你將不得不這種老式的方式解決的完整路徑的VBS得到這個工作。首先讓批處理文件將其調用記錄到日誌文件中;例如:'echo >> C:\ MyLog \ log.txt%DATE%%TIME%MyBat BEGIN'和'echo >> C:\ MyLog \ log.txt%DATE%%TIME%MyBat END'。不要忘記提前製作目錄,併爲全局讀/寫訪問設置權限。您可能還必須將其與日誌文件一起播種,並在那裏設置權限。如果START和END行都顯示在日誌文件中,請轉到'.vbs'文件並在那裏添加日誌記錄語句。 –

回答

0

通過指示bat文件

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