0

3つの異なるタスクに3つの異なるバッチファイルが必要です。

-HldsUpdateTool.exeコンソールの出力をログに記録します。これまでのところ、何が起こっているのかわかりませんが、これを管理しました。

@echo off
echo Updating...
call :Logit>>log.txt 2>&1
exit /b 0
:Logit
hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir "Source 2007 Dedicated Server" -verify_all -retry
start notepad log.txt

-このログをクリーンアップして、ファイルとフォルダのリストを取得します。ログは次のようになります。

Checking bootstrapper version ...
Updating Installation
Determining which depot(s) to install/update...
5 depot(s) will be installed/updated
  0:30 Checking local files and building download list for depot 242 'Counter-Strike Source Shared' version 126
  0:30     Connecting content server session for version 126
  0:31     [80.239.194.146:27030] Connecting...
  0:31     [80.239.194.146:27030] Connection established; handshaking...
  0:31     [80.239.194.146:27030] Sending login message...
  0:31     Fetching version 126 manifest
  0:41     Reading version 126 checksum table
  0:54     Calculating download size and verifying checksums
  0:54         Checking...: /
  0:54         Checking...: cstrike
  0:54         Checking...: cstrike\bin
  0:54         Checking...: cstrike\cfg
  0:54         Checking...: cstrike\classes
  0:54         Checking...: cstrike\maps
  0:54         Checking...: cstrike\maps\graphs
  0:54         Checking...: cstrike\maps\soundcache
  0:57         Checking...: cstrike\materials
  0:57         Checking...: cstrike\materials\brick
  0:57         Checking...: cstrike\materials\buildings
  0:57         Checking...: cstrike\materials\carpet
  0:57         Checking...: cstrike\materials\composite
  0:57         Checking...: cstrike\materials\concrete
  0:58         Checking...: cstrike\materials\console
etc... later on files do not have extensions!

-リストされていないファイルまたはフォルダーからサーバーフォルダーをクリーンアップします。

私は2日間検索しましたが、これは私が一人で行くことができる限りです...

4

2 に答える 2

1

あなたはそれを短くすることができます

@echo off
hldsupdatetool.exe -command update -game "Counter-Strike Source" -dir "Source 2007 Dedicated Server" -verify_all -retry >Log.txt
start notepad Log.txt

拡張子が表示されないファイルの問題は、実行しているプログラムに起因します。バッチが実行するのは、exe を呼び出して出力をリダイレクトすることだけです。

于 2012-07-19T13:21:50.187 に答える
0

まず第一に、私は間違いなくバッチの初心者です:) 2番目の質問については、-このログを消去してファイルとフォルダーのリストを取得します。ログは次のようになります。

for /f "tokens=3" %G in ('findstr /i /c:"checking..." log.txt')do echo %G>>_.log

うまくいきますように。

更新: log.txt をダウンロードしてすぐにテストします。結果は次のとおりです (ファイル名 _.log):

/
cstrike
cstrike\bin
cstrike\cfg
cstrike\classes
cstrike\maps
cstrike\maps\graphs
cstrike\maps\soundcache
cstrike\materials
cstrike\materials\brick
cstrike\materials\buildings
cstrike\materials\carpet
cstrike\materials\composite
cstrike\materials\concrete
cstrike\materials\console
cstrike\materials\cs_assault
cstrike\materials\cs_havana
cstrike\materials\cs_italy
cstrike\materials\cstrike
cstrike\materials\de_aztec
cstrike\materials\de_cbble
cstrike\materials\de_chateau
cstrike\materials\de_dust
cstrike\materials\de_nuke
cstrike\materials\de_piranesi
cstrike\materials\de_prodigy
cstrike\materials\de_tides
cstrike\materials\de_train
cstrike\materials\decals
cstrike\materials\decals\concrete
cstrike\materials\decals\metal
cstrike\materials\decals\wood
...

多分私はあなたの意味を誤解しましたか?

再度更新

3つ目の質問について

@echo off
set /p origin=Where is the original folder?(Type absoulute path directly.)
echo origin: %origin%
set /p destin=Where can i put file temporarily(Type absoulute path directly.)
echo destination :%destin%


for /f %%G in (_.log) do (
if "%%G"=="/" (
    echo.
) else ( 
    xcopy %origin%\%%G %destin%\%%G /H /K /R /E /D /I /Y 
))

rm -rf %origin%
set /p origin=What is the name of original folder?(Type name)
rename %destin% %origin%

お役に立てますように!

3回目の更新:)

初版はあなたにとって少し混乱するかもしれないからです.私の能力不足で申し訳ありません.

@echo off
setlocal enabledelayedexpansion
set MAXNUM=100

set /p origin=Where is the original folder?(Type absoulute path directly.)
echo origin: %origin%
set backup_origin=%origin%

for /L %%H in (1,1,%MAXNUM%) do (
for /F "delims=\" %%G in ("!origin!") do (
set name=%%G
set origin=!origin:%%G\=!
))
set father=!backup_origin:\%name%=!

xcopy !father!\!name! !father!\backup_!name! /H /K /R /E /D /I /Y
::copy files
rm -rf !father!\!name!
::delete origin
rename !father!\backup_!name! !name!
::rename the new folder using the old's name

ファイルがそのような形式の場合は、「,」などC:\template\example\cstrike\materials\brickを入力するだけです。 私は Win7 で作業していますが、そうでない場合もあります。そのため、バッチ ファイルをお使いの OS に合わせて調整することをお勧めします。c:\template\example\hl2 \cstrike
xcopyrmrename

于 2012-07-19T16:07:58.907 に答える