リダイレクト命令を変数に格納することはできますか?これらの行に沿ったもの:リダイレクト命令を変数に移動しますか?
set redirect=>> buildlog.txt 2>&1
nmake -f Makefile %redirect%
これは機能しません。
リダイレクト命令を変数に格納することはできますか?これらの行に沿ったもの:リダイレクト命令を変数に移動しますか?
set redirect=>> buildlog.txt 2>&1
nmake -f Makefile %redirect%
これは機能しません。
>
はシェルメタキャラクタなので、変数をテキストに直接割り当てることはできません。彼らはシェルによって実行され、RESULTが割り当てられます。だから、あなたが引用しなければならない/それらをエスケープ:あなたが期待するように動作
set redirect=^>^>buildlog.txt 2^>^&1
^-^--etc... cmd uses^to escape.
を:あなたが本当にする必要があるすべては、拡張遅れる使用が
C:\temp\z>set foo=^>^>log.txt
C:\temp\z>dir %foo%
C:\temp\z>dir
Volume in drive C is Windows7_OS
Volume Serial Number is 0E31-0E35
Directory of C:\temp\z
09/23/2016 10:32 AM <DIR> .
09/23/2016 10:32 AM <DIR> ..
09/23/2016 10:32 AM 333 log.txt
1 File(s) 333 bytes
2 Dir(s) 274,917,388,288 bytes free
C:\temp\z>type log.txt
Volume in drive C is Windows7_OS
Volume Serial Number is 0E31-0E35
Directory of C:\temp\z
09/23/2016 10:32 AM <DIR> .
09/23/2016 10:32 AM <DIR> ..
09/23/2016 10:32 AM 0 log.txt
1 File(s) 0 bytes
2 Dir(s) 274,917,388,288 bytes free
パーフェクト、ありがとう! –
'set" redirect = >> buildlog.txt 2>&1 "'(エスケープする必要のない引用...) – aschipfl
です。
@echo off
set "redirect=>> buildlog.txt 2>&1"
setlocal enabledelayedexpansion
nmake -f Makefile !redirect!
endlocal
は
これは別の解決策です。 –
いいえ、これは動作しません。変数で '>'と '&'を正しく取得したら、リダイレクトを機能させるには '%redirect%'を使う必要があります。 – dbenham
あなたがそうでなければ、リダイレクトは 'set'コマンドに適用されますので、引用符でVARの割り当てを囲む必要があるだろう、文字 '2'、のisnteadは'> '、等...として割り当て取得しますテキストを変数に追加します。 –
@MarcB実例を提供できますか?私は引用符で試してみましたが、どちらもうまくいきません... –
あなたのbuildlog.txtファイルで何をしたいのかよく分かりません。 buildlog.txtに** set redirect = **を含めますか? – Squashman