2017-07-07 324 views
0

這是conf文件如何打開.conf文件和保存使用蝙蝠

使用chroot內容=假

嚴格模式=假

主機允許= *

日誌文件= rsyncd.log

我需要在添加此兩行開始

uid = 0的

GID = 0

和該另一線路中的端

[數據]

路徑=/cygdrive/d /我的文檔

只讀=假

傳輸記錄=是

與蝙蝠完成我將要通過政策上部署[郵件]

路徑=/cygdrive/d /郵件

只讀=假

轉讓記錄= YES

我網絡。

我真的很新,但我感謝你的幫助。我的英語道歉。

我試着用這個代碼:

@echo off 
Color 9A & Mode con cols=83 lines=5 
Title %~n0 Adding lines to rsyncd.conf 
::::::::::::::::::::::::::::::::::::::::: 
:: Automatically check & get admin rights 
::::::::::::::::::::::::::::::::::::::::: 
REM --> Check for permissions 
Reg query "HKU\S-1-5-19\Environment" >nul 2>&1 
REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
Echo. 
ECHO      ************************************** 
ECHO      Running Admin shell... Please wait... 
ECHO      ************************************** 
goto UACPrompt 
) else (goto gotAdmin) 
:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    set params = %*:"="" 
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" 

    "%temp%\getadmin.vbs" 
    del "%temp%\getadmin.vbs" 
    exit /B 
:gotAdmin 
:::::::::::::::::::::::::::: 
::START 
:::::::::::::::::::::::::::: 
set "hostspath=C:\Program Files (x86)\ICW\rsyncd.conf" 
FIND /C /I "uid=0" "%hostspath%" >nul 
FIND /C /I "gid=0" "%hostspath%" >nul 
FIND /C /I "[data]" "%hostspath%" >nul 
FIND /C /I "path = /cygdrive/d/My documents" "%hostspath%" >nul 
FIND /C /I "read only = false" "%hostspath%" >nul 
FIND /C /I "transfer logging = yes" "%hostspath%" >nul 
FIND /C /I "[mail]" "%hostspath%" >nul 
FIND /C /I "path = /cygdrive/d/mail" "%hostspath%" >nul 
FIND /C /I "read only = false" "%hostspath%" >nul 
FIND /C /I "transfer logging = yes" "%hostspath%" >nul 
) 
Attrib +R "%hostspath%" 
+3

新手很好,但是這是一個程序員問答網站,所以你需要展示一些解決問題的方法,而不是要求別人爲你做。 –

+0

我忘記提到這是路由到文件C:\ Program Files文件(x86)\ ICW \ rsyncd.conf –

+0

我試着用這段代碼 –

回答

0

您可以使用this script獲得管理員權限。只需將腳本複製到一個批處理文件的末尾這個腳本的開頭:

@echo off 

:: Run this script with elevation 
call :RequestAdminElevation "%~dpfs0" %* || goto:eof 

set "hostspath=C:\Program Files (x86)\ICW\rsyncd.conf" 
set "new_hostspath=C:\Program Files (x86)\ICW\rsyncd.temp" 

:: Add the first lines to the new file 
echo uid=0> %new_hostspath% 
echo gid=0>> %new_hostspath% 

:: copy your original .conf file to the new one 
type %hostspath% >> %new_hostspath% 

:: add the last lines to the new file 
echo [data] >> %new_hostspath% 
echo path = /cygdrive/d/My documents >> %new_hostspath% 
echo read only = false >> %new_hostspath% 
echo transfer logging = yes >> %new_hostspath% 
echo [mail] >> %new_hostspath% 
echo path = /cygdrive/d/mail >> %new_hostspath% 
echo read only = false >> %new_hostspath% 
echo transfer logging = yes >> %new_hostspath% 

:: copy new file over the old file 
type %new_hostspath% > %hostspath 

pause &goto:eof 

[here you paste the RequestAdminElevation function code] 
+0

謝謝cyberponk,現在我在我的道路上解決了這個問題。 –

0

所有find命令都在做什麼 - 他們只是檢查字符串的文件中,並設置errorlevel爲0;如果發現,如果不是0則不爲0,但完成find後,您對結果沒有任何影響。

:::::::::::::::::::::::::::: 
::START 
:::::::::::::::::::::::::::: 
set "hostspath=C:\Program Files (x86)\ICW\rsyncd.conf" 
FIND /C /I "uid=0" "%hostspath%" >nul 
if not errorlevel 1 goto :eof 
Attrib -R "%hostspath%" 
(for %%a in ("gid=0" "uid=0") do echo %%~a)>tempfile.txt 
type "%hostspath%" >>tempfile.txt 
(for %%a in ("[data]" 
"uid=0" 
"path = /cygdrive/d/My documents" 
"read only = false" 
"transfer logging = yes" 
"[mail]" 
"path = /cygdrive/d/mail" 
"read only = false" 
"transfer logging = yes" 
) do echo %%~a 
)>>tempfile.txt 
move /y tempfile.txt "%hostspath%" 
Attrib +R "%hostspath%" 

首先檢查uid=0是否在文件中。如果是,假定工作已經完成並退出。

.conf文件依次取出只讀標誌

for命令將「在引號值」分配給%%a,然後echo每個值(~去除包圍引號)。包含for命令的()允許將輸出重定向到我命名爲tempfile.txt的文件。

然後鍵入現有.conf文件的內容的臨時文件

然後輸出剩餘的線路,但此時重定向器是>>追加到tempfile.txt

然後移動tempfile.txt.conf文件和標記它只讀。

+0

感謝您的幫助 –