質問 |
||
| 質問者:gonxyz | バッチファイルでテキストファイルの中身を置換 | |
|---|---|---|
困り度:
|
dir C:\*.zip /b /a-d /s > ジップ.txt で作成した、ジップ.txtがあります。 このテキストファイルをパス名を削除してファイル名のみに置換したいのですが、どなたか教えて頂けますか? |
|
質問投稿日時:08/04/08 19:28 質問番号:3932951 |
||
回答 |
|
| 回答者:koko_u_ | >すみませんが、delimsとか~nxfの意味も教えて頂けませんか? C:\> help for |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/10 22:00 回答番号:No.7 |
|
| この回答へのお礼 | koko_u_さん 大変ありがとうございました。 結果をテキストファイルのは自己解決しました。 ただhelp forをみても自分には意味が分かりませんでした。 今回はTacosanさんのを使わせて頂きました。 |
回答良回答20pt |
|
| 回答者:Tacosan | 「1行に 1個ずつファイル名が書いてある」として, 「フルパスだと長いのでパスを消してファイル名と拡張子だけにしたい」ということ? だとしたら for /F "delims=" %f in (ファイル) do @echo %~nxf でできるような気がする. あ, バッチファイル (スクリプト) の中で使うなら for /F "delims=" %%f in (ファイル) do @echo %%~nxf のように %% とする必要があります. |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/10 17:04 回答番号:No.6 |
|
| この回答への補足 | Tacosanさんありがとうございます。 ほぼ完璧です! あと、結果をテキストファイルにするには、 どうすればよろしいでしょうか? すみませんが、delimsとか~nxfの意味も教えて頂けませんか? |
| この回答へのお礼 | 大変ありがとうございました。 結果をテキストファイルのは自己解決しました。 ただhelp forをみても自分には意味が分かりませんでした。 |
回答良回答10pt |
|
| 回答者:HowOver | 別案こっちの方がよさそうですけど text3.txtの出来るタイミングがなんかおかしい。 dir *.zip /w /a:-d /s /o:g > test1.txt findstr /v "^$" test1.txt > test2.txt findstr /v /r /c:"^ ." test2.txt > text3.txt |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/09 01:01 回答番号:No.5 |
|
| この回答へのお礼 | HowOverさん 大変ありがとうございました。 今回はTacosanさんのを使わせて頂きました。 |
回答 |
|
| 回答者:HowOver | こんなところが限界 dir c:\*.zip /w /a:-d /s /o:g > test1.txt find /v " 個のファイル" test1.txt > test2.txt find /v " 個のディレクトリ" test2.txt > test3.txt find /v " のディレクトリ" test3.txt > test4.txt find /v "" test4.txt > test5.txt findstr /v "^$" test5.txt > test6.txt 気に入らないところは研鑽してください。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/08 23:40 回答番号:No.4 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:koko_u_ | >1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 >2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。 >(ファイル名では絞れないため) >3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。 2番は出力されたテキストファイルをテキストエディタか何かで開いて目で見て削除しているのですか? であれば、その後エディタの置換機能でファイル名だけ残せばよいように思いますが。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/08 22:56 回答番号:No.3 |
|
| この回答への補足 | そうです、メモ帳でやってみたけどうまくいきませんでした。 置換で「*\→空白」とやったけど出来ませんでした。 それに、パソコンが分からない人にも使えるようにしたいのです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:Tacosan | 確か for /r C: %%f in (*.zip) do @echo %%f でもドライブ文字とディレクトリが付いちゃったような気がします>#1. for /r C: %%f in (*.zip) do @echo %%~nxf でしょうか. |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/08 20:16 回答番号:No.2 |
|
| この回答への補足 | 補足します 1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため) 3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可) 2番までは出来たのですが、3番のフルパス名を削除が分かりません(><) 初心者なので出来るだけ、わかりやすく教えていただけると助かります。 koko_u_さんTacosan素早い回答ありがとうございます。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:koko_u_ | ファイル名だけ欲しいなら for ループでまわしておけばいいのでは? for /r C: %%f in (*.zip) do echo %%f のような感じで |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/08 19:44 回答番号:No.1 |
|
| この回答への補足 | 補足します 1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため) 3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可) 2番までは出来たのですが、3番のフルパス名を削除が分かりません(><) 初心者なので出来るだけ、わかりやすく教えていただけると助かります。 koko_u_さん素早い回答ありがとうございます。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |