2016-06-12 24 views
-1

私はちょっとした問題があります: '(: 私はたくさんのtxtファイルを持っており、日々増えています。私はそれらのバックアップを作成し、安全上の理由からそれらを暗号化する必要があります。バッチスクリプト:バッチファイルの名前変更

@echo off 
FOR /R d:\txtwork %%G in (**.txt **.trt) DO (
certutil -f -encode "%%G" "%%G.bak" 
echo. >>D:\txtwork\logs\logbak1.txt %time:~0,-6% - Made a back-up of file - "%%G" 
) 

[OK]を、これは完璧に動作しますが、私は同様にそれらをデコードし.txt.bakから(古いものに拡張子を変更または.txtに.trt.bakするバッチを作りたいですか。 TRT)ので、私が試したし、この作られた:SO私は

0を試してみました

@echo off 
FOR /R d:\txtwork %%G in (**.bak) DO (
certutil -f decode "%%G" "%%G:~0,-4" 
) 

それdidnのTのWORK

@echo off 
FOR /R d:\txtwork %%G in (**.bak) DO (
set var_1="%%G" 
certutil -f decode "%var_1%" "%var_1:~0,-4%" 
) 

いずれも機能しませんでした。 ヘルプ?

+0

あなたが取得しているエラーは何ですか? –

+1

*有効ではありませんでした。*は有用な問題の説明ではありません。どんな**具体的な方法で**それは働いていない*ですか?私たちがあなたを助けてくれるようにするには、あなたが持っている問題を**明確に**そして**具体的に**説明しなければなりません。**実際の質問を**お願いします。 *それはどちらもうまくいかなかった。ヘルプ?*は質問ではありません。 –

答えて

0
  • "%%G:~0,-4"は完全に間違っています。
  • は、あなたがそれを行うことは別の問題をもたらすでしょうがDelayed Expansionを有効にして%var_1%の代わりに!var_1!を使用する必要がvar_1変数の値を取得します(ノートは二重引用符を二倍)
    • certutil -f decode "!var_1!" "!var_1:~0,-4!"
    • certutil -f decode ""something.txt.bak"" ""something.txt""に展開されます。
  • 次を使用します。setコマンド構文:set "var_1=%%G"(最初の二重引用符に注意してください)。
  • 次のコードスニペットは動作するはず

次のように

@echo off 
SETLOCAL EnableExtensions DisableDelayedExpansion 
FOR /R d:\txtwork %%G in (**.bak) DO (
    set "var_1=%%G" 
    SETLOCAL EnableDelayedExpansion 
    certutil -f decode "!var_1!" "!var_1:~0,-4!" 
    ENDLOCAL 
) 

ただし、Parameter Extensionsを使用することができます。

@echo off 
SETLOCAL EnableExtensions 
FOR /R d:\txtwork %%G in (**.bak) DO (
    certutil -f decode "%%G" "%%~dpnG" 
) 
関連する問題