SMART SPACE

ハイブラウ&ハイセンス

000バッチファイル

[ リスト | 詳細 ]

記事検索
検索

全4ページ

[1] [2] [3] [4]

[ 次のページ ]

保存したwebサイトの名前を短縮するバッチを教えてください。
ブラウザーはInternetExplorer と Firefox を使っています。
webサイトを名前をつけて保存しました。

名前は自分で付けたものではなく、保存の際に勝手に付けられたものです。
保存先を見てみると .html .htm .files _files といったファイルやフォルダーがあります。
ブラウザーによって付けられる拡張子が微妙に異なります。
名前の方はと言えば、とても長い名前のものもあります。
それだと 別のフォルダーにコピーしようとすると名前が長すぎるという理由でコピーが中断してしまいます。
名前を70文字までにすれば問題なくコピーできることがわかりました。
ただ.html ファイルと .filesフォルダーの名前は同じにしておかないといけないようです。
Firefox の場合は .htmファイルと _files フォルダーの名前を同じにしないといけません。
拡張子はそのままで、タイトル名だけ頭から70文字だけ採用して
それを.html ファイルと .filesフォルダー
または .htmファイルと _files フォルダーの
名前部分の新しい名前にするバッチを教えてください。
下記のバッチを使ってみましたがうまくいきません。
名前が短くならないんです。
どこが悪いのでしょうか?

@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
ren "!k!.files" "!k:~0,70!.files"
)

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
ren "!k!.files" "!k:~0,70!.files"
)

閲覧数: 6  回答数: 0  お礼: 100枚

回答

1〜1件/1件中
2016/10/812:04:03
具体的にどのような名前のファイル・フォルダ名が短くならなかったのか教えてください。

私の環境(Windows 10 Home)では,
・~.files
・~_files
・~.htm
・~.html
(100文字は長いので~(※)として表します)
のすべての~となっている部分を70文字に変更できました。

空白文字が挟まった場合のテストとして,半角スペースを1つ6文字目に挟むこともしました(全角スペースは区切りとして使用されないはずなのでテストしませんでした)。

※1234567890を10回繰り返して100文字にしました。
  • 2016/10/0812:24:17
    全角スペースが入っていても問題なく動きました。
  • username
    質問者
    2016-10-10 07:03:49
    うまくいくのですか?
    私のPCではうまくいきません。
    もしかしたらPCのどこかがおかしくて
    うまくいかないのではないかと思ってます。
  • username
    2016-10-10 09:04:54
    他のコマンドは使用できますか?

    例えば
    @md test
    だけのバッチファイルを実行すると"test"が作成されますか?

  • username
    質問者
    2016-10-10 14:37:27
    @md test
    の意味がわかってません。
    やってみましたが
    フォルダー内になにかひとつ増えたような気はしますが
    testは探してもありませんでした。
  • username
    質問者
    2016-10-10 14:39:02
    すみません
    testというフォルダーができたのが確認できました。
  • username
    質問者
    2016-10-10 16:34:04
    明白に70文字を超えているファイルがあるのに
    名前が短くなりません。
  • username
    2016-10-10 17:12:30
    「具体的に」は読み飛ばしていい部分ではありません。

    読み飛ばすのは空白文字云々の件だけにして下さい。
    (ダブルクォートで囲ってあるので空白が問題になることは(恐らく)ない,よって冗長)

    もし万が一「具体的」という日本語の意味が分からないのであれば,下記の質問・回答を参考にして下さい↓

    http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1424439709
  • username
    質問者
    2016-10-10 17:39:57
    フォルダー内です。
  • username
    質問者
    2016-10-10 17:41:46
    バッチファイル適用後です。
    1行目
    【パンドラの箱ご開陳】昔のガラケーに電源を入れたら、血行がよくなりました!(ライター/27歳/女性) TS すぐやる部 デジカルCOLUMN 明日をちょこっとHAPPY!にするデジカル系情報マガジン TIME&SPACE(タイムアンドスペース).files

    4行目
    【パンドラの箱ご開陳】昔のガラケーに電源を入れたら、血行がよくなりました!(ライター/27歳/女性) TS すぐやる部 デジカルCOLUMN 明日をちょこっとHAPPY!にするデジカル系情報マガジン TIME&SPACE(タイムアンドスペース).htm
  • username
    2016-10-10 19:20:37
    半角!がエスケープでファイルが見つかっていないようです。

    PDFとして保存したほうが早いのでは?

    https://helpx.adobe.com/jp/acrobat/kb/225548.html
  • username
  • username
    質問者
    2016-10-10 19:35:04
    原因を突き止めていただきありがとうございます。
    これまでに集めたものはとりあえず諦めるしかないのですね。
    PDFなら半角!の問題はクリアされるのでしょうか。
  • username
    2016-10-10 19:51:33
    多分されませんが手動変更時に処理すべき項目数が減るはずです。

    P.S.
    名前が長くても普通にコピーできました。
    検索すると下記のようなページにたどり着きました。
    (私は何もせずにコピーできたので意味があるのかはよくわかりません)

    https://support.microsoft.com/ja-jp/kb/2891362

diogenes412323さん  2016-09-20 09:19:02

別の問題が派生しました。
何度かやった後 見てみると
拡張子が重なってました。
.jpg.htm.htm という拡張子を
.htm     に変更するにはどうしたらいいでしょうか?
どなたか助けてください。お願いします。

@echo off

 setlocal enabledelayedexpansion
 for %%i in (*.htm) do (
 set j=%%i
 set j=!j:~0,70!
 ren "%%i" "!j!.htm"
 )

では  .htm が増えるだけ

@echo off


 setlocal enabledelayedexpansion
for %%i in (*.htm.htm.htm) do (
 set j=%%i
 set k=!j:~0,-12!
 set l=!j:~0,70!
 ren "!k!.htm.htm.htm" "!k:~0,70!.htm"
 rem "%%i" "!l!.htm"
 rem "!k!.files" "!k:~0,70!.files"
 )
で .htm.htm.htm  を .htm  に修正できた


@echo off

 setlocal enabledelayedexpansion
for %%i in (*.jpg.htm.htm) do (
 set j=%%i
 set k=!j:~0,-12!
 set l=!j:~0,70!
 ren "!k!.htm.htm.htm" "!k:~0,70!.htm"
 rem "%%i" "!l!.htm"
 rem "!k!.files" "!k:~0,70!.files"
 )

で .jpg.htm.htm  を .htm  に修正できそう



http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13164257078
diogenes412323さん  2016/9/1312:50:44

保存したwebサイトの名前を短縮するバッチを教えてください。

webサイトを名前をつけて保存したのですが、(保存の際に勝手に名前がついてきます)
別のフォルダーにコピーしようとすると名前が長すぎるものはコピーできません。
名前を70文字までにすればコピーできそうです。
拡張子はそのままで、
タイトルだけ頭から70文字だけ採用してそれを新しい名前にするバッチを教えてください。


補足

長すぎるファイル名を百文字にリネームするバッチを教えてください。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1015043423...
にコードが載っていましたが、私の用途にはどう変更したら使えるようになるでしょうか?



ikuzak_ikuzokさん  2016/9/1618:50:17

@echo off

setlocal enabledelayedexpansion

for %%i in (*.html) do (
set j=%%i
set j=!j:~0,70!
ren "%%i" "!j!.html"
)

==========
拡張子が*.htmlの場合です。
違う拡張子に対応させるには,".html"(2か所)を変更して下さい。







@echo off

setlocal enabledelayedexpansion

for %%i in (*.files) do (
set j=%%i
set j=!j:~0,70!
ren "%%i" "!j!.
files"
)











ikuzak_ikuzokさん 2016-09-19 14:27:08

@echo off

setlocal enabledelayedexpansion

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
)

==========
テストで70字は大きいので,3字分切り出しでテストしました。
1234567890.htmlと1234567890_files
をそれぞれ
123.htmlと123_files
に変更させることができました。
上に貼ったものは3字を70字に直してあるのでそのまま使えます。

set k=!j:~0,-5!
の5は,拡張子の文字数+1から来ています。




username
ikuzak_ikuzokさん 2016-09-19 14:27:47
望む動作と違うことをしていたらごめんなさい







diogenes412323さん   2016-09-19 18:00:16

1234567890.htmlのファイルと
1234567890_filesのフォルダーが
同じところに置いてあるフォルダー内に
バッチファイルを置いて
それを右クリックして、管理者として実行すればよろしいのでしょうか?
1234567890.htmlは名前を短くできたのですが、
1234567890_filesのフォルダーの名前は短くすることができませんでした。
何が悪いのでしょうか?








ikuzak_ikuzokさん   2016-09-19 18:09:13
自分の環境だと管理者として実行するとうまく動きませんでした
(そのままダブルクリックだと正しく動きます)

@echo off
を消してコマンドプロンプトから呼び出して,エラーが表示されたら原因がわかるかもしれません。

同じディレクトリに以下のコードをcmd.batなどの適当な名前で保存し,ダブルクリックでコマンドプロンプトを起動できます
(勝手にカレントディレクトリを移動するので確認がしやすいです。
他の方法で起動し,cdコマンドで移動してもOKです。)
==========
@title コマンドプロンプト
@cmd.exe /k cd /d %~dp0










diogenes412323さん  2016-09-19 18:40:59
アドバイス大変ありがとうございます。








diogenes412323さん  2016-09-19 18:43:45
見えませんよね






ikuzak_ikuzokさん  2016-09-19 18:48:37

解像度的に「ファイルが見つかりません」ぐらいしか判別できませんでした。
エラーメッセージの直前のコマンドに書いてあるファイルが存在するか確認してみてください。












diogenes412323さん  2016-09-19 18:48:58

下記はコマンドプロンプトの内容です。



C:\Users\Z97A1H\Documents\新しいフォルダー>C:\Users\Z97A1H\Documents\新しいフォ
ルダー\htmタイトル短縮ソフト.bat

C:\Users\Z97A1H\Documents\新しいフォルダー>rem @echo off


C:\Users\Z97A1H\Documents\新しいフォルダー>setlocal enabledelayedexpansion

C:\Users\Z97A1H\Documents\新しいフォルダー>for %i in (*.htm) do (
set j=%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%i" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
)

C:\Users\Z97A1H\Documents\新しいフォルダー>(
set j=Pc-d009m Tower Model Computer Computers Case Opening Bare Frame - Buy .htm

set k=!j:~0,-5!
set l=!j:~0,70!
ren "Pc-d009m Tower Model Computer Computers Case Opening Bare Frame - Buy .htm
" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
)
指定されたファイルが見つかりません。

C:\Users\Z97A1H\Documents\新しいフォルダー>






























ikuzak_ikuzokさん  2016-09-19 18:56:14

@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
)

==========
*.htm版です。
set k=!j:~0,-5!の数字の説明不足でした。
拡張子の文字数に合わせないといけないのでエラーになっていました。













ikuzak_ikuzokさん  2016-09-19 18:57:07

両方(*htm,*html)に対応↓
==========
@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
)

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
)










ikuzak_ikuzokさん  2016-09-19 19:00:25
訂正
==========
@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
)

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
)

==========
間違えていました。
すみません













@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
 )

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
 )


for %%i in (*.files) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!.files"
 )






diogenes412323さん  2016-09-19 21:51:25


フォルダーの中のファイルを精査したところ
_files で終わるものと
.files で終わるものとが混在していることが分かりました。
.files で終わるものもリネームが必要になりました。


1234567890.htmlのファイルと
1234567890_filesまたは1234567890.filesのフォルダーは
常にセットとして作られているわけではなく
1234567890.htmlのファイルだけのものもありますが
セットとして存在してなくてもいいのでしょうか?
単独でもリネームできるのでしょうか?


1234567890_filesまたは1234567890.filesのフォルダーの中にある
いろんな拡張子のファイルも同時に短くするにはどうしたらいいのでしょうか?
これはあまり数がないのでいままでは諦めていましたので、
だめでもしかたないのですが。








ikuzak_ikuzokさん  2016-09-19 22:25:43


ren "!k!_files" "!k:~0,70!_files"
の下に
ren "!k!_files" "!k:~0,70!.files"
を足してください。


本来は(コマンドプロンプトから呼ぶと)エラーが表示されますが,バッチをダブルクリックで呼ぶ際は瞬きしている間に消えるので気にしないでいいです。


様々な拡張子に対応するバッチは,何かできそうなんですが思いつけませんでした(拡張子の文字数が一定ならできるのですが…)
力及ばず申し訳ございません









diogenes412323さん  2016-09-20 00:03:30

すみません。どうしてもうまくいきません。
1234567890.filesのタイプのフォルダーの名前だけを
狙い撃ちで短くしたい時はどうしたらいいでしょうか。
教えていただいたコードを使いましたがうまくいきません。

@echo off

setlocal enabledelayedexpansion

for %%i in (*.files) do (
set j=%%i
set j=!j:~0,70!
ren "%%i" "!j!.files"
)

でもだめで


@echo off

setlocal enabledelayedexpansion

for %%i in (*.files) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!.files"
)

でもだめでした。







ikuzak_ikuzokさん  2016-09-20 00:29:32

set k=!j:~0,-6!

だと思います。











ikuzak_ikuzokさん  2016-09-20 00:35:22

ごめんなさい
間違えてました
==========
@echo off

setlocal enabledelayedexpansion

for %%i in (*.htm) do (
set j=%%i
set k=!j:~0,-4!
set l=!j:~0,70!
ren "%%i" "!l!.htm"
ren "!k!_files" "!k:~0,70!_files"
ren "!k!.files" "!k:~0,70!.files"
)

for %%i in (*.html) do (
set j=%%i
set k=!j:~0,-5!
set l=!j:~0,70!
ren "%%i" "!l!.html"
ren "!k!_files" "!k:~0,70!_files"
ren "!k!.files" "!k:~0,70!.files"
)

==========
ごくごく単純なミスでした
何度も申し訳ありません









diogenes412323さん  2016-09-20 09:19:02
別の問題が派生しました。
何度かやった後 見てみると
拡張子が重なってました。
.jpg.htm.htm という拡張子を
.htm     に変更するにはどうしたらいいでしょうか?











diogenes412323さん  2016-09-20 09:46:38

一週間の掲載時間がまもなく切れそうなので
転載したブログのURLを載せておきます。
http://blogs.yahoo.co.jp/uuatanabetakahiko/37177237.html




■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10150434230



q_and_a_catさん   2015/9/1800:08:17

長すぎるファイル名を百文字にリネームするバッチを教えてください。ただし拡張子はそのまま残す事とします。
あるフォルダ(サブフォルダを含む)にファイル名が長いファイルが大量にあります。

フォルダ内の全ての100文字を越えるファイル名を先頭から100文字だけのファイル名にリネームするバッチを教えてください。
別の言い方をすると、拡張子はそのままで、全ての100文字を越えるファイル名の101文字以降を削除するバッチとも言う事ができます。

【背景】
ネットサイトのショートカットをフォルダに作成していました。
拡張子はエクスプローラー上では表示されていませんが、xxx.URL のようです。
ネットサイト名には100文字を越えるようなものがよくあり、気がつくとそのようなファイルがたくさんできていました。これらのファイルを、例えば、別のフォルダに移動した場合、フォルダのパス名が長いと、パス名+ファイル名の文字数の制限を越えてしまう危険があります。
そこで、バッチファイルで、 一気に全ての
(100文字越えのファイル名).URL を、
(100文字のファイル名).URL に、一律に揃えたく思いました。
できれば時々バッチファイルを実行して、そのフォルダ内の長すぎるファイル名を100文字に揃えたいと思っています。
どうぞよろしくお願いいたします。

閲覧数:279     回答数:1     お礼:500枚






yaihakiseruさん  2015/9/1900:49:27

同じディレクトリにある前提で。
inDiにディレクトリ名を入れてください。
(現在はバッチと同ディレクトリにある「test」フォルダを参照するようになって射ます。
――――――――――――――ここから―――――――――――――――
@echo off
setlocal enabledelayedexpansion

rem 対象ディレクトリ
set inDi=%~dp0test\

rem 頭から残す文字数
set /a wordCnt=100

echo 対象フォルダ : %inDi%
echo ファイルの先頭から削除する文字数 : %wordCnt%

rem ディレクトリ移動
pushd %inDi%

for /f "usebackq delims=" %%f in (`dir /b /a-d`) do (

rem dir /b /a-d で取得したファイル名リストから一行を参照、そのファイル名と拡張子を取得
set fileName=%%~nf
set Ext=%%~xf

rem 先頭から%wordCnt%文字分だけ削除したものをnewFileNameに。
set newFileName=!fileName:~0,%wordCnt%!

echo 対象ファイル : !fileName!!Ext!
echo リネーム後 : !newFileName!!Ext!

rem 名前を変更します。
ren "!fileName!!Ext!" "!newFileName!!Ext!"
echo ------------

)


echo 完了しました。
pause
exit

――――――――――――――ここまで―――――――――――――――
以上。何か改善点補足等がありましたら気軽に返信ください








q_and_a_catさん   2015/09/2000:31:45

教えていただき、どうもありがとうございました!
100文字を越えるインターネット ショートカット (.URL)ファイルを用意してテストしてみた所、うまく動作したようですので、バッチプログラムを勉強するのにも是非参考にさせていただきます。
なお、実際のフォルダには、質問にも書きましたようにサブフォルダがあります。フォルダの最下層のサブフォルダまで、一気にバッチで変更する事は難しいでしょうか?
もしよろしければ、教えていただければ助かります。





質問した人からのコメント    2015/9/23 23:04:37

前回と同じ結果が得られ、対応するログファイルもできました!
ログフィルは自分が思ってたよりお手間をおかけしまって大変恐縮です。
リダイレクトかな?と思ったのですが、今回のような方法なら自分ではできなかったので、教えていただけて本当に助かりました。
また記号やunicode文字についてのコメントも参考になりました。そういう事なんですね。
ほんとうに、何から何までありがとうございました!





@echo off
 setlocal enabledelayedexpansion
 for %%i in (*.mp4) do (
 set j=%%i
 set l=!j:~0,70!
 ren "%%i" "!l!.mp4"
 )

全4ページ

[1] [2] [3] [4]

[ 次のページ ]


.

過去の記事一覧

diogenes
diogenes
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

よしもとブログランキング

もっと見る

[PR]お得情報

いまならもらえる!ウィスパーWガード
薄いしモレを防ぐパンティライナー
話題の新製品を10,000名様にプレゼント
いまならもらえる!ウィスパーうすさら
薄いしモレを防ぐ尿ケアパッド
話題の新製品を10,000名様にプレゼント
コンタクトレンズで遠近両用?
「2WEEKメニコンプレミオ遠近両用」
無料モニター募集中!
ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!
ふるさと納税サイト『さとふる』
お米、お肉などの好きなお礼品を選べる
毎日人気ランキング更新中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事