- ベストアンサー
バッチファイルでテキストファイルの中身を置換
dir C:\*.zip /b /a-d /s > ジップ.txt で作成した、ジップ.txtがあります。 このテキストファイルをパス名を削除してファイル名のみに置換したいのですが、どなたか教えて頂けますか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
「1行に 1個ずつファイル名が書いてある」として, 「フルパスだと長いのでパスを消してファイル名と拡張子だけにしたい」ということ? だとしたら for /F "delims=" %f in (ファイル) do @echo %~nxf でできるような気がする. あ, バッチファイル (スクリプト) の中で使うなら for /F "delims=" %%f in (ファイル) do @echo %%~nxf のように %% とする必要があります.
その他の回答 (6)
- koko_u_
- ベストアンサー率18% (459/2509)
>すみませんが、delimsとか~nxfの意味も教えて頂けませんか? C:\> help for
お礼
koko_u_さん 大変ありがとうございました。 結果をテキストファイルのは自己解決しました。 ただhelp forをみても自分には意味が分かりませんでした。 今回はTacosanさんのを使わせて頂きました。
- HowOver
- ベストアンサー率30% (17/56)
別案こっちの方がよさそうですけど 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
お礼
HowOverさん 大変ありがとうございました。 今回はTacosanさんのを使わせて頂きました。
- HowOver
- ベストアンサー率30% (17/56)
こんなところが限界 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 気に入らないところは研鑽してください。
- koko_u_
- ベストアンサー率18% (459/2509)
>1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 >2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。 >(ファイル名では絞れないため) >3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。 2番は出力されたテキストファイルをテキストエディタか何かで開いて目で見て削除しているのですか? であれば、その後エディタの置換機能でファイル名だけ残せばよいように思いますが。
補足
そうです、メモ帳でやってみたけどうまくいきませんでした。 置換で「*\→空白」とやったけど出来ませんでした。 それに、パソコンが分からない人にも使えるようにしたいのです。
- Tacosan
- ベストアンサー率23% (3656/15482)
確か for /r C: %%f in (*.zip) do @echo %%f でもドライブ文字とディレクトリが付いちゃったような気がします>#1. for /r C: %%f in (*.zip) do @echo %%~nxf でしょうか.
補足
補足します 1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため) 3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可) 2番までは出来たのですが、3番のフルパス名を削除が分かりません(><) 初心者なので出来るだけ、わかりやすく教えていただけると助かります。 koko_u_さんTacosan素早い回答ありがとうございます。
- koko_u_
- ベストアンサー率18% (459/2509)
ファイル名だけ欲しいなら for ループでまわしておけばいいのでは? for /r C: %%f in (*.zip) do echo %%f のような感じで
補足
補足します 1.パソコン内の、特定の拡張子(jtd、xls等)で検索してテキストに出力します。 2.そのテキストのフルパス名を頼りに特定のファイルのみを削除します。(ファイル名では絞れないため) 3.結果を印刷したいのですが、用紙削減のためフルパス名を削除したいのです。(ファイル名はダブっても可) 2番までは出来たのですが、3番のフルパス名を削除が分かりません(><) 初心者なので出来るだけ、わかりやすく教えていただけると助かります。 koko_u_さん素早い回答ありがとうございます。
お礼
大変ありがとうございました。 結果をテキストファイルのは自己解決しました。 ただhelp forをみても自分には意味が分かりませんでした。
補足
Tacosanさんありがとうございます。 ほぼ完璧です! あと、結果をテキストファイルにするには、 どうすればよろしいでしょうか? すみませんが、delimsとか~nxfの意味も教えて頂けませんか?