VS2008でビルド後のイベントを作成するときに、xcopy操作のターゲットが読み取り専用でないかどうかを確認したいと思います。一時変数を使用し、後で特定の属性をチェックするコード(http://forums.techguy.org/dos-other/842311-solved-checking-if-file-folder.html )を見つけました。それは動作しません。変数を手動で印刷すると、空のように見えます。
if $(PlatformName)==x86 (
echo x86
For /F "Delims=" %%I In ('Attrib $(ProjectDir)..\..\somedir\$(ConfigurationName) \somemoredir\$(TargetName).dll') Do Set _Attribs=%%I
If NOT "%_Attribs:~5,1%"=="R" (
set test="monkey"
echo %test%
echo $(test)
echo nono
echo %_Attribs%
echo $(ProjectDir)..\..\somedir\$(ConfigurationName)\somemoredir\$(TargetName).dll
attrib $(ProjectDir)..\..\somedir\$(ConfigurationName)\somemoredir\$(TargetName).dll
xcopy /Y $(ProjectDir)..\..\..\Runtime\bin\$(TargetName).* $(ProjectDir)..\..\somedir\$(ConfigurationName)\somemoredir\
)
)。
出力は次のとおりです。
x86ECHOがオンになっています。ECHOがオンになっています。nonoECHOがオンになっています。
次に、属性メッセージなど。
echo%test%、echo $(test)などは、テスト変数に何も含まれていないことを示しているようです。
環境変数を使用するにはどうすればよいですか?
(ところで、私が本当に興味を持っている_Attribsにも何も含まれていません。)