2017-09-01 20 views
0

パスを頻繁に使用するためにバッチファイル(.bat)でパラメータ化する必要があるため、バッチファイルで文字列を連結したいと考えています。だからではなく、書き込みの:私はバッチファイルスクリプト文字列を連結する

set pathString="C:\Folder\Sub Folder\" 
ren pathString+"filename.ext.tmp" pathString+"filename.ext" 
del pathString+"filename.ext.tmp" 

のようなものを書きたい

ren "C:\Folder\Sub Folder\filename.ext.tmp" "C:\Folder\Sub Folder\filename.ext" 
del "C:\Folder\Sub Folder\filename.ext.tmp" 

はこの何とかなんとかですか?もしそうなら、どのように?ありがとう!

答えて

0

あなたの例をコマンドは次のようになります。

Set "pathString=C:\Folder\Sub Folder" 
Ren "%pathString%\filename.ext.tmp" "filename.ext" 

それは、へ(したがって、必要性を全く変わっていないしていないため、リネーム先のために必要な一切のパスはありません接頭辞%pathString%。名前を変更した後にファイルが存在しなくなったため、名前を変更したばかりのファイルを削除する必要はありません。

0

これはかなり基本的なバッチ変数の使用で、ちょうど正しく引用符を使用することを忘れないでください:

set pathString=C:\Folder\Sub Folder 
ren "%pathString%\filename.ext.tmp" "%pathString%\filename.ext" 
del "%pathString%\filename.ext.tmp" 

言われていること、あなたが

  • ので、あなたのコード例では、多くの意味がありません名前を変更して存在しないファイルを削除しようとしていますか?

または

  • あなたはそれを削除する前に、ファイルの名前を変更する必要があると思いますか?

削除する前に名前を変更すると、ロックされたファイルを削除しようとしていて、削除の失敗が許容されます。それを行うと、このようなものになります。

@echo off 

REM Set up some things for this example: 
md "%temp%\batchtest" 
echo.blah blah > "%temp%\batchtest\filename.ext" 

REM Actual code: 

set pathString=%temp%\batchtest 
ren "%pathString%\filename.ext" "filename.ext.del" 
del "%pathString%\filename.ext.del" 
+0

エラーは「コマンドの構文が正しくありません」です。 – aragorn