2012-06-26 26 views
0

我有MS Visual Studio Web項目文件夾來自TFS服務器與幾個* .scss文件,並已生成* .css(由Mindscape Web Workbench Visual Studio插件)。如何用「compass compile」命令覆蓋只讀文件?

在發佈網站之前,希望使用Compass重新生成* .css文件。
但是文件* .css文件包含在項目中並簽入,因此它們被標記爲只讀文件屬性。

我的命令行:

C:\Ruby193\bin>compass compile 
    --force 
    --sass-dir 'd:\SDesign' 
    --css-dir 'd:\SDesign' 
    --output-style compressed 
    --no-line-comments 
    --relative-assets 
    --trace 

這裏是結果:

overwrite Style.css 
Errno::EACCES on line ["56"] of C: Permission denied - d:/SDesign/Style.css 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/actions.rb:56:in `open' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/actions.rb:56:in `write_file' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:144:in `compile' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:118:in `compile_if_required' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:103:in `block (2 levels) in run' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:101:in `each' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:101:in `block in run' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:126:in `timed' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:100:in `run' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/update_project.rb:45:in `perform' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/base.rb:18:in `execute' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/project_base.rb:19:in `execute' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/exec/sub_command_ui.rb:43:in `perform!' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/exec/sub_command_ui.rb:15:in `run!' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:29:in `block in <top (required)>' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:43:in `call' 
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:43:in `<top (required)>' 
    C:/Ruby193/bin/compass:19:in `load' 
    C:/Ruby193/bin/compass:19:in `<main>' 

有什麼辦法不重置只讀從目標手動屬性* .css文件?
也許一些魔術命令參數?

預先感謝您。

回答

0

這是我的臨時解決方案。
如果你知道更好的方式,請告訴我!

@echo off 
set ruby_bin=c:\Ruby193\bin 
set project_path=d:\CDesign 
set temp_path=%project_path%\temp 

if exist "%temp_path%" rd "%temp_path%" /Q /S 
mkdir "%temp_path%" 

call %ruby_bin%\compass.bat compile --force --sass-dir '%project_path%' --css-dir '%temp_path%' --output-style compressed --no-line-comments --relative-assets 

xcopy %temp_path%\*.* %project_path% /S /R /Y 
rd "%temp_path%" /Q /S