みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win7
FM13
ドキュメント内にありますPDFを消したいのですが出来ずに困っています。ファイル名はA.pdfとします。
まず
変数[$FM:Get ( ドキュメントパス ) &"A.pdf"]
Eventを送信[[aevt];[odoc];[$FM]](ファイル)
これで実行しますと、PDFが起動してくるためファイルは見つけているはずです。
次に
変数[$FM:"cmd /c del ¥""&Get ( ドキュメントパス ) &"A.pdf"]
Eventを送信[[aevt];[odoc];[$FM]](計算)
にしたところ、ファイルが見つからないと出ました。
Eventを送信[[aevt];[odoc];"cmd /c del ¥""&Get ( ドキュメントパス ) &"A.pdf"](計算)
Eventを送信[[aevt];[odoc];"cmd /c del ¥""&"/C:/Users/(ユーザー名)/Documents/A.pdf"](計算)
テキストにも打つなど試したのですが、どれもダメでした。
以前、質問したときは出来たはずなのですが、久しぶりにやると出来なくなってしまいました。
回答のほど、よろしくお願いします。
Offline
●変数[$FM:"cmd /c del ¥""&Get ( ドキュメントパス ) &"A.pdf"]
↓
・変数[$FM:"cmd /c del "&Get ( ドキュメントパス ) &"A.pdf"]
or
・変数[$FM:"cmd /c del ¥""&Get ( ドキュメントパス ) &"A.pdf¥""]
Offline
少し前進しましたが、また止まってしまいました。
WinとMacでの違いによるものでしょうか。
"cmd c/ del c:¥users¥(ユーザー名)¥Documents¥A.pdf"
で消すことが出来ました。
ただし、PC変わるとユーザー名なども変わりますので、ドキュメントパスを取得したいと思っていますが、
その場合は、"/"が使われるため、"¥"へ置換したいのですが、上手く出来ません。
Substitute関数を使って置換しようとしたところ、 Substitute ( Get ( ドキュメントパス ) ; "/" ; "¥"" )で無いと末がダブル""で無いと通りません。
また、実行しますと"/"が抜けた状態で変数が生成されるため、Event送信ができずに困っています。
よろしくお願いします。
Offline
Offline
最終的には、手段を問わずにスクリプトでファイルが消せたらいいんですよね?
対象レコードが0レコードの状態でファイルを、エクスポートしてみてください。
$path = Get ( ドキュメントパス ) & "A.pdf"
としてエクスポートパスに $path を指定すればいいでしょう。
ファイル名のA.pdfのところは、消したいファイル名にしてください。
"A.pdf"をどこに付けるかに依りそうだけど
変数内容をQuote ( Replace( Substitute ( Get ( ドキュメントパス ) ; "/" ;"¥¥" )&"A.pdf" ; 1 ; 1 ; "" ) )
Event送信を "cmd /c del " &$FM
で動くみたいですけど。
Offline
みなさん、ありがとうございます。
まだ、出来ていません。
とおりすがりさんの方法だと
変数[$path ; Get ( ドキュメントパス ) & "A.pdf"]
レコードのエクスポート[ダイアログなし;$path]
という形でしょうか?
フィールド内容のエクスポート、出力ファイルの指定で$pathかとも思ったのですが、レコード内に取り込んだPDFではなく、フォルダに置かれているファイルを消したいというものなので、違うのかな。
旅人さんの方法では
変数[Quote ( Replace( Substitute ( Get ( ドキュメントパス ) ; "/" ;"¥¥" )&"A.pdf" ; 1 ; 1 ; "" ) )]
結果が、"¥C:¥¥Users¥¥ユーザ名¥¥Documents¥¥A.pdf"となりファイルが見つからないと出てしまいました。
結果が、"C:\Users\ユーザ名\Documents\A.pdf"であれば、該当ファイルへ辿り着くのですが、\を1つ減らした
変数[Quote ( Replace( Substitute ( Get ( ドキュメントパス ) ; "/" ;"\" )&"A.pdf" ; 1 ; 1 ; "" ) )]としたいのですが、上記のように出来ませんでした。
目標としては、ドキュメントフォルダ下の1つフォルダにあるPDFファイルを削除することです。ここでは、Imageフォルダ内のA.pdf。
用途が限られる成功だと
変数を直打ちでなら、消せるのですが取得関数で出来ないのが悔しいです。変数を固定すると、他のPCで使えませんのでダメですね。
変数["C:\Users\ユーザ名\Documents\Image\A.pdf"]
Eventを送信[[aevt];[odoc]"cmd /c del "& $$Scan](計算)
よろしくお願いします。
Offline
私はWindowsは全く分かりません。しかもXPしか使っていない・・・
そのXPでマイドキュメントにA.pdfを入れて、このサンプルの
消したいファイル名にAと入れてスクリプトを動かすと消えま
した。
Offline
とおりすがりさんの方法でもできますよ。
レコードをPDFとして保存と思うけど、その変数を指定して対象レコードが0の状態で
スクリプトを動かします。
Offline
>対象レコードが0の状態で
よく見たら「空白レコードを保存」というオプションがあった。
Offline
旅人さん、
「空白レコードを保存」ではPDFが作成されるのでファイルの削除にはなりません。
「レコードをPDFとして保存」だと、エラー3になって対象レコード0では実行できません。
「ファイルを、エクスポート」と書いてるのは「レコードのエクスポートでファイルを作成する」の意味。ファイル名を削除したいのに合わせれば、ファイル形式は何でもOKのはず。
あるとさん、
旅人さんのでいいんですけど、ここの掲示板ではWindowsの円マークがバックスラッシュで表示されるので、円に見えてる文字をコピペしても動きません。FM上で打ち直してみて。
>「空白レコードを保存」ではPDFが作成されるのでファイルの削除にはなりません。
>・・・中略・・・・
>ファイル形式は何でもOKのはず。
その通りでした。失礼しました。
Offline
みなさま、ありがとうございます。
試してみたいと思います。報告は来週になるかもしれません。
Offline
みなさま、ありがとうございました。
ファイルの削除できました。これで次へ進めます。感謝
Offline
Pages: 1
[ Generated in 0.020 seconds, 7 queries executed - Memory usage: 554.95 KiB (Peak: 575.85 KiB) ]