usage: pdftotext [options] <PDF-file> [<text-file>]
私はpdftotext(xpft、上記の使用法)を使用して、ディレクトリ(およびサブディレクトリ)内のすべてのpdfをテキストファイルに変換しています。構造が保持されているかどうかは関係ありません。ファイルを別のディレクトリに書き込みたいだけです。
私はすでにディレクトリを指しているcmdcdを持っています( "C:\ input" say)。
したがって、特定の入力ファイルのパスが
C:\input\filename.pdf
そして出力したい
C:\output\filename.txt
私のコマンド:
for /r %i in (*.pdf) do pdftotext "%i" -raw "C:\output\%i"
ほぼ動作しますが、出力しようとします
C:\input\C:\output\filename
これは明らかにエラーを引き起こします。
どうすればこれを解決できますか?
次のコマンドを使用します。
for /r %i in (*.pdf) do pdftotext -raw "%i" "C:\output\%~ni.txt"
%~ni
%i
をファイル名のみに展開します(つまり、ドライブ文字、パス、および.pdf
拡張子を削除します)
%~ni.txt
は、新しい拡張子.txt
も追加します
引数を使用してファイル名を指定すると、次の拡張構文を適用できます。
変数%1を使用しています(ただし、これはどのパラメーターでも機能します)
%〜f1%1を完全修飾パス名に展開します-C:\ utils\MyFile.txt
%〜d1%1をドライブ文字のみに展開します-C:
%〜p1%1をパスのみに展開します(例:\utils \これには、いくつかのコマンドによってエスケープ文字として解釈される末尾の\が含まれます。
%〜n1%1をファイル拡張子C:\ utils\MyFileのないファイル名に展開するか、パスのみが存在する場合(末尾の円記号なし)-そのパスの最後のフォルダー。
%〜x1%1をファイル拡張子のみに展開-.txt
%〜s1 f、n、s、およびxの意味を変更して、Short 8.3名(存在する場合)を参照します。
%〜1%1を展開して、周囲の引用符を削除します( ")
%〜a1%1のファイル属性を表示します
%〜t1%1の日付/時刻を表示します
%〜z1%1のファイルサイズを表示します
%〜$ PATH:1 PATH環境変数を検索し、%1を最初に見つかった一致の完全修飾名に展開します。
上記の修飾子は組み合わせることができます。
%〜dp1%1をドライブ文字とパスのみに展開します
%〜sp1%1を8.3文字に短縮されたパスに展開します
%〜nx2%2をファイル名と拡張子のみに展開します