Steve Hall wrote:
On Thu, 2006-09-14 at 13:01 +0300, Nikolaos A. Patsopoulos wrote:
1. I want to edit multiple files from command line so I created a
vim script with all the commands (>20). I use a batch file in WinXP:

  |@echo off
  vim -s script file.txt
  exit

however I need to run this script on multiple files. In vim's help
there is this code for use in bash(?) shell

  ||for file in *.txt; do|
  |     vim -e -s $file < change.vim|
  |     lpr -r tempfile|
  |done

however it doesn't seem to work under Cygwin.

To do an operation on multiple files in a WinXP DOS batch:

  for %%A in (*.txt) do [command]

Chain multiple commands after the "do" statement with " & ":

  for %%A in (*.txt) do vim -e -s change.vim "%%A" & copy "%%A" lpt1

or call a separate batch that takes %1 as the argument:

  for %%A in (*.txt) do call MyEdit.bat "%%A"

where MyEdit.bat is:

  @echo OFF
  echo File %1...
  vim -e -s change.vim "%1"
  copy "%1" lpt1

Note that I usually sprinkle double quotes liberally to avoid issues
with spaces in paths.


That works great!!! Thanks!

Nikos

Reply via email to