プロが教える店舗&オフィスのセキュリティ対策術

バッチファイルで、記号を含む引数(ファイルのパス)をファイル出力したいのですが、うまくいきません。

バッチファイル
C:\AAA\BBB.bat
に対し、

テキストファイル
C:\AAA\『,』『^』『%』『&』.txt
をドラッグ&ドロップした場合に、

引数をテキストファイルに出力したいのですが、方法が分かりません。

以下の5パターンを試してみたのですが、駄目でした。

何か方法はあるでしょうか。

---------------------------------------

■ バッチファイルの書式
echo %1> CCC.txt

■ 出力結果
C:\AAA\『

---------------------------------------

■ バッチファイルの書式
echo "%1"> CCC.txt

■ 出力結果
"C:\AAA\『"

---------------------------------------

■ バッチファイルの書式
echo "%~1"> CCC.txt

■ 出力結果
"C:\AAA\『"

---------------------------------------

■ バッチファイルの書式
echo %*> CCC.txt

■ 出力結果
C:\AAA\『,』『』『%』『

---------------------------------------

■ バッチファイルの書式
echo "%*"> CCC.txt

■ 出力結果
"C:\AAA\『,』『』『%』『"

---------------------------------------

A 回答 (1件)

バッチでは無理です。

VBScript等を使ってください。

Set fso = CreateObject("Scripting.FileSystemObject")
set argv=WScript.Arguments
Set f = fso.OpenTextFile("C:\Path\to\CCC.txt", 2, True)

For I = 0 to argv.Count - 1
f.WriteLine argv(I)
Next
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

お教え頂いた方法で、当該の動作は完璧に出来ました。ありがとうございました。

ただ、これを実用するとなると、当方の環境で使用しているウイルス対策ソフトでは、VBSを実行しようとすると警告が出て、処理が一旦停止されてしまったり、あと、VBSから、処理の続きであるバッチファイルを実行する方法を調べて、お教え頂いたVBSに追記してみましたが、エラーで実行出来なかったので、その問題を解決したり、相対パスや絶対パス等のパスの問題など、色々と勉強してクリアしなければいけない問題はありますが、それは自分で少しずつ解決していこうと思います。

とにかく、解決の方向性は見えたので、大変助かりました。本当にありがとうございました。

お礼日時:2015/12/16 07:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています