PDFtkを利用して
pdfを180°回転させるか、ページを逆順にさせるか、両方行うかを選択して
選択した処理をpdfに行うバッチファイルを
作ろうと思ったのですがさっぱりうまく行きません。
手打ちで打つ分には、
コマンドプロンプトにて、PDFtkを利用して
カレントディレクトリをあらかじめdesktopに移動させて
処理させるpdfもデスクトップに置いた上で、
[ページを180°回転] pdftk in.pdf cat 1-enddown output out.pdf
[ページを逆順] pdftk in.pdf cat end-1 output out.pdf
[ページを逆順&ページを180°回転] pdftk in.pdf cat end-1down output out.pdf
(入力ファイルをin.pdf、出力ファイルをout.pdfとしてます)
と打てばうまくいくのですが
これをバッチファイル化させようとして
@echo off
echo ************ アプリケーションメニュー ************
echo [1] : 180°回転
echo [2] : 逆順に並替え
echo [3] : 180°回転+逆順に並替え
echo **********************************************
set /p NUM=どの処理を行いたいか選択してください >""
if "%NUM%"=="1" SET str1=1-enddown
if "%NUM%"=="2" SET str1=end-1
if "%NUM%"=="3" SET str1=end-1down
rem 変換させる
pdftk %1 cat %str1% output "out.txt"
end
とやっても
************ アプリケーションメニュー ************
[1] : 180°回転
[2] : 逆順に並替え
[3] : 180°回転+逆順に並替え
**********************************************
どの処理を行いたいか選択してください >
が表示させれるだけ(数字入れても繰り返し表示されるだけ)になってうまく行きません。
どうしてもバッチファイル化したいので助力お願いします!
No.2ベストアンサー
- 回答日時:
ちょっと原因は分からないですが、もしかしたら引数1のパスの問題でしょうか。
一度試しに、以下の記述で実行してみてください。
――――――――――――――――――――
@echo off
echo ************ アプリケーションメニュー ************
echo [1] : 180°回転
echo [2] : 逆順に並替え
echo [3] : 180°回転+逆順に並替え
echo **********************************************
set /p NUM=どの処理を行いたいか選択してください
if "%NUM%"=="1" SET str1=1-enddown
if "%NUM%"=="2" SET str1=end-1
if "%NUM%"=="3" SET str1=end-1down
rem 変換させる
pdftk "%~1" cat %str1% output "out.pdf"
:end
――――――――――――――――――――
■ 変更点
・「%1」を「"%~1"」に変更。
変えてみましたがだめでした。。。
やはり何も起きず
echo ************ アプリケーションメニュー ************
echo [1] : 180°回転
echo [2] : 逆順に並替え
echo [3] : 180°回転+逆順に並替え
echo **********************************************
set /p NUM=どの処理を行いたいか選択してください
が永遠繰り返し表示される状態に。
endと書いているのに終了しないのも謎ですが、
繰り返し使ってないのに永遠繰り返されるのも謎…
No.1
- 回答日時:
以下の線内の記述だとどうでしょうか。
――――――――――――――――――
@echo off
echo ************ アプリケーションメニュー ************
echo [1] : 180°回転
echo [2] : 逆順に並替え
echo [3] : 180°回転+逆順に並替え
echo **********************************************
set /p NUM=どの処理を行いたいか選択してください
if "%NUM%"=="1" SET str1=1-enddown
if "%NUM%"=="2" SET str1=end-1
if "%NUM%"=="3" SET str1=end-1down
rem 変換させる
pdftk %1 cat %str1% output "out.pdf"
:end
――――――――――――――――――
■ 変更点
・「set /p NUM=どの処理を行いたいか選択してください >""」の「 >""」を削除。
・「out.txt」を「out.pdf」に変更。
・「end」を「:end」に変更。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- PDF PDFの回転と保存 3 2023/01/16 15:02
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) コマンドプロンプトでフォルダ内(デスクトップ)の複数PDFファイルの1ページ目だけを印刷したい 1 2022/09/11 23:33
- PDF PDFファイルプログラム。ファイル名の昇順にPDFに収録されないのは何が原因か? 3 2023/07/28 08:49
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルでpingの結果を...
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
findstrのerrorlevel
-
phpでcookieがうまく保存されない
-
小数点以下0の非表示
-
syntax error, unexpected 'ech...
-
コマンドプロンプト フォルダ内...
-
変数の受け渡しによる画像の表示
-
カレンダーの今日の日付をハイ...
-
PHPで3番目に大きい数を求める
-
batファイルでPC名称の変更
-
PHPで訪問回数を表示するカウン...
-
バッチファイルで、全てのウィ...
-
php mysql SELECT文でテーブル...
-
「取得先」という表現について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
phpでcookieがうまく保存されない
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
ゼロとNULLを区別して number_f...
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
DBのハッシュ化したパスワード...
-
XMLのタグの有無をPHPで判定し...
-
pdftkを使った処理をバッチファ...
-
batファイルでPC名称の変更
-
変数の中の<br>を消したい
-
csvの特定のキーワードを指定し...
-
bashの関数の引数にスペースが...
-
環境変数「%USERPROFILE%」の内...
おすすめ情報
実行してみた所
C:\Users\○○○○のところに、pdftkという空ファイル(拡張子なし)が出来、
その後、終了することなく
echo ************ アプリケーションメニュー ************
echo [1] : 180°回転
echo [2] : 逆順に並替え
echo [3] : 180°回転+逆順に並替え
echo **********************************************
set /p NUM=どの処理を行いたいか選択してください
が永遠表示され(何を打っても表示されます)ダメでした。
(@echo offは分かりやすいようあえて外してみました)
なお、赤線部だけをコマンドプロンプトで直接入力すると
C:\Users\○○○○のところにちゃんと処理されたout.pdfが出てきました。。。
2回目の回答のお礼記入後に
pdftkのところをpdftk.exeにして
――――――――――――――――――――
@echo off
(中略)
rem 変換させる
pdftk.exe "%~1" cat %str1% output "out.pdf"
:end
――――――――――――――――――――
としたらうまく行きました!