PS 出力をファイルにリダイレクトして、さらに処理しようとしています。このために、出力を CMD.exe に送信するプリンター ポート リダイレクト RedMon を使用しています。
C:\Windows\system32\cmd.exe
引数として、次のようなものが機能することを期待していましたが、機能しません。「%1」には、ファイル名のユーザー入力が含まれています。
/c >"%1"
また
/c 1>"%1"
また
/c |"%1"
また
/c > "%1" 2>&1
出力をバッチファイルに送信してからファイルに書き込むと、ほとんど機能します。
/c WriteOutput.bat "%1"
ただし、バッチファイルは何らかの形でファイルを変更しています(空行をスキップし、感嘆符などを無視します...)可能であれば、バッチファイルを避けたいです。ファイルに「直接」取得する方法はありますか? プリンターオプションで「ファイルに出力」を選択することは、私にとってはオプションではありません。同じ最終結果が必要ですが、cmd.exeを介してさらに処理できます。何か案は?
編集:まあ、それは私が使用したバッチファイルです。先頭の空行とスペースは無視されます。
@echo off
setlocal
set FileName=%1
echo(>%FileName%.ps
for /F "tokens=*" %%A in ('more') do (
echo %%A>>%FileName%.ps
)