拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。
※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1424858999/
【.cmd】 バッチファイルスクリプト %12 【.bat】
https://mevius.5ch.net/test/read.cgi/tech/1489207631/
それ以前の過去スレ
%10 http://peace.2ch.net/test/read.cgi/tech/1374205515/
%9 http://toro.2ch.net/test/read.cgi/tech/1335015478/
%8 http://toro.2ch.net/test/read.cgi/tech/1315844420/
%7 http://hibari.2ch.net/test/read.cgi/tech/1298873550/
%6 http://hibari.2ch.net/test/read.cgi/tech/1277465356/
%5 http://pc12.2ch.net/test/read.cgi/tech/1242268171/
%4 http://pc12.2ch.net/test/read.cgi/tech/1229955189/
%3 http://pc11.2ch.net/test/read.cgi/tech/1217860043/
%2 http://pc12.2ch.net/test/read.cgi/tech/1197881068/
%1 http://pc11.2ch.net/test/read.cgi/tech/1178281991/
探検
【.cmd】 バッチファイルスクリプト %13 【.bat】
レス数が900を超えています。1000を超えると表示できなくなるよ。
2018/11/21(水) 14:52:07.84ID:v84I4o+L
814デフォルトの名無しさん
2020/06/03(水) 23:24:38.53ID:Gm6SBE/O >>809
情報量ならPowerShellの方が上だし
TechnetフォーラムならPowerShellのカテゴリーあるし
ポケットリファレンスの著者である牟田口大介まで出没している
ストアアプリのインストールとかはPowerShell必須だし
バッチのみじゃ書けない物も割と多い
処理の内容は忘れたけどバッチでやれた事を
PowerShellで書いたらキー入力を要求されて
かえってバッチの方が良かった場合もあるけど
そんなパターンは圧倒的に少ないと思う
でもウチの場合、PowerShell使いがいないから
というのが最大の理由で実務はバッチだらけ
良いか悪いかならきちんとメンテナンスが出来る物が良いであるべき
個人の感想ならばPowerShellって
バージョンが上がって非互換が出そうなので避けたい
情報量ならPowerShellの方が上だし
TechnetフォーラムならPowerShellのカテゴリーあるし
ポケットリファレンスの著者である牟田口大介まで出没している
ストアアプリのインストールとかはPowerShell必須だし
バッチのみじゃ書けない物も割と多い
処理の内容は忘れたけどバッチでやれた事を
PowerShellで書いたらキー入力を要求されて
かえってバッチの方が良かった場合もあるけど
そんなパターンは圧倒的に少ないと思う
でもウチの場合、PowerShell使いがいないから
というのが最大の理由で実務はバッチだらけ
良いか悪いかならきちんとメンテナンスが出来る物が良いであるべき
個人の感想ならばPowerShellって
バージョンが上がって非互換が出そうなので避けたい
815デフォルトの名無しさん
2020/06/04(木) 09:41:35.56ID:Di3Z81qX 9x系(95/98/Me)のWindows用MS-DOSプロンプトとNT系(それ以外)のWindows用コマンド・プロンプトの違いさえ
意識していれば、バッチファイルの利用は難しくないと思う。
VBScript(WSHことWindows Script Host)の場合は9x系とNT系に関係なく、WSHバージョン5.1以降かどうかさえ
気をつけていれば概ね大丈夫だと思う。
それらに比べてPowerShellは、個人的にはハードルが極めて高い。
意識していれば、バッチファイルの利用は難しくないと思う。
VBScript(WSHことWindows Script Host)の場合は9x系とNT系に関係なく、WSHバージョン5.1以降かどうかさえ
気をつけていれば概ね大丈夫だと思う。
それらに比べてPowerShellは、個人的にはハードルが極めて高い。
816デフォルトの名無しさん
2020/06/04(木) 15:05:12.56ID:iofqxoab817デフォルトの名無しさん
2020/06/04(木) 15:12:12.70ID:iofqxoab >>814
PSはバージョン指定(-vオプション)すればそのバージョンが実行される仕組みを持ってるから互換性についてもある程度クリーンだよ
PSはバージョン指定(-vオプション)すればそのバージョンが実行される仕組みを持ってるから互換性についてもある程度クリーンだよ
818デフォルトの名無しさん
2020/06/04(木) 15:16:33.10ID:efimIni8 BATの典型的なものとしては
シーケンシャルに
・外部アプリ呼び出し
・ファイルコピーや移動
・メッセージ表示
であって、こんなものをPowerShellで書く必要は無いし、ステップ数も余分にいる
シーケンシャルに
・外部アプリ呼び出し
・ファイルコピーや移動
・メッセージ表示
であって、こんなものをPowerShellで書く必要は無いし、ステップ数も余分にいる
819デフォルトの名無しさん
2020/06/04(木) 21:18:27.58ID:U7KCPoET PSの話したいなら該当スレへ
ここでするのはスレチ
ここでするのはスレチ
820デフォルトの名無しさん
2020/06/05(金) 09:26:58.17ID:YNSaAEsR バッチファイル内で、複数の文字列の一部だけを羅列して、それをまとめて補完したものを変数に入れたい
具体的には
set LOGFILES=%LOG%\tech\*.dat %LOG%\prog\*.dat %LOG%\win\*.dat %LOG%\newsplus\*.dat ...
のように指定するのではなく
setlocal enabledelayed...
for %%f in (tech prog win newsplus) do (
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
)
のようにして、増減や修正を簡単に出来るようにしたい
したいんだけど、なんかうまく動いてくれない
何かヒントもらえますか?
具体的には
set LOGFILES=%LOG%\tech\*.dat %LOG%\prog\*.dat %LOG%\win\*.dat %LOG%\newsplus\*.dat ...
のように指定するのではなく
setlocal enabledelayed...
for %%f in (tech prog win newsplus) do (
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
)
のようにして、増減や修正を簡単に出来るようにしたい
したいんだけど、なんかうまく動いてくれない
何かヒントもらえますか?
821デフォルトの名無しさん
2020/06/05(金) 10:14:13.82ID:YNSaAEsR 自己解決
どうやらこんな感じで動きそう
for %%f in (tech prog win newsplus) do (
call :APPEND %%f
)
:APPEND
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
goto :EOF
どうやらこんな感じで動きそう
for %%f in (tech prog win newsplus) do (
call :APPEND %%f
)
:APPEND
set LOGFILES=%LOGFILES% %LOG%\%%f\*.dat
goto :EOF
822デフォルトの名無しさん
2020/06/05(金) 11:33:35.77ID:xkF+o6Lc >>820
setlocal enabledelayedexpansion
for %%f in (tech prog win newsplus) do (
set LOGFILES=!LOGFILES! %LOG%\%%f\*.dat
)
じゃダメなの?
setlocal enabledelayedexpansion
for %%f in (tech prog win newsplus) do (
set LOGFILES=!LOGFILES! %LOG%\%%f\*.dat
)
じゃダメなの?
823デフォルトの名無しさん
2020/06/05(金) 11:53:35.34ID:YNSaAEsR あれ?出来ますね
実は!で囲むのもやってみた(つもりだった)んだけど
(たぶん、どっか別のちょっとしたところでミスしてて)
その時はうまく動かなかったんですね
失礼しました
実は!で囲むのもやってみた(つもりだった)んだけど
(たぶん、どっか別のちょっとしたところでミスしてて)
その時はうまく動かなかったんですね
失礼しました
824810
2020/06/06(土) 00:36:10.94ID:ZNTMwsEj >>817
業務システムのくせに -v の無いPSスクリプトを Win7 上で動かしてるクソシステム、あるよ。改修したくもないけど。
PS は ver.3 で破壊的変更がなされたから、ver.2 に合わせて勉強するだけ無駄だと言われている。
core になって COM も切られたから Word や Excel ファイルへのアクセスも今後どーなんの?的な段階。
また、PS が「管理の自動化」を目指しているのに対して、バッチや WSH は「一般ユーザーの定型操作の自動化」を目指しているから方向性自体が違う。
おまけにバッチとWSHはもう仕様変更が無いという強みがある。
等価なものを個人的に PS でリライトしてみる、はいいと思うけど、本番環境に入れるのはNGかな…。
業務システムのくせに -v の無いPSスクリプトを Win7 上で動かしてるクソシステム、あるよ。改修したくもないけど。
PS は ver.3 で破壊的変更がなされたから、ver.2 に合わせて勉強するだけ無駄だと言われている。
core になって COM も切られたから Word や Excel ファイルへのアクセスも今後どーなんの?的な段階。
また、PS が「管理の自動化」を目指しているのに対して、バッチや WSH は「一般ユーザーの定型操作の自動化」を目指しているから方向性自体が違う。
おまけにバッチとWSHはもう仕様変更が無いという強みがある。
等価なものを個人的に PS でリライトしてみる、はいいと思うけど、本番環境に入れるのはNGかな…。
825デフォルトの名無しさん
2020/06/09(火) 07:37:38.68ID:xQo5RGeQ 長々と更新してもcmd変わらず放置
不具合あればPS使えということか
バッチに未来は無い
不具合あればPS使えということか
バッチに未来は無い
826デフォルトの名無しさん
2020/06/09(火) 21:59:44.80ID:Phlj4K/L cmdはもう更新しないってアナウンス出てなかったっけ?
827デフォルトの名無しさん
2020/06/09(火) 22:16:29.17ID:aAgqnyde バッチ処理って簡単な定時処理に使ってる人がほとんどだろうし
現状維持でこのまま使えたらそれでいいよ
現状維持でこのまま使えたらそれでいいよ
828デフォルトの名無しさん
2020/06/14(日) 08:05:01.57ID:Nip9LUw0 教えてください。
引数以外でショートカットの情報をバッチに渡すことはできますか?
バッチ自体のファイル名、パス名を取得する方法はよく見かけますが、、
ショートカットのファイル名や親フォルダの情報をバッチに渡す手段ってやっぱりないですかね?
引数以外でショートカットの情報をバッチに渡すことはできますか?
バッチ自体のファイル名、パス名を取得する方法はよく見かけますが、、
ショートカットのファイル名や親フォルダの情報をバッチに渡す手段ってやっぱりないですかね?
829デフォルトの名無しさん
2020/06/14(日) 10:09:40.34ID:Rvue1P4U ショートカットって何の?起動したバッチファイルのもの?
ショトカ自体は dir *.lnk で取れるけど複数あると特定は面倒臭かったり無理かも
どのlnkからバッチが起動されたか?は作業ディレクトリがそのlnkと同じだとか限定条件下でないと無理じゃないかな
ショトカ自体は dir *.lnk で取れるけど複数あると特定は面倒臭かったり無理かも
どのlnkからバッチが起動されたか?は作業ディレクトリがそのlnkと同じだとか限定条件下でないと無理じゃないかな
830デフォルトの名無しさん
2020/06/14(日) 10:41:39.28ID:Nip9LUw0 >>829
やっぱり無理そうですね。
ショートカットのファイル名をショートカットのコマンドラインに渡してバッチに引き渡そうと企んだのですが、、、
%0とか%~dp0とか記述しても記述そのままで%1に渡るだけでした。
何か方法ないのかなと思い、、あきらめます。
ご回答ありがとうございます。
やっぱり無理そうですね。
ショートカットのファイル名をショートカットのコマンドラインに渡してバッチに引き渡そうと企んだのですが、、、
%0とか%~dp0とか記述しても記述そのままで%1に渡るだけでした。
何か方法ないのかなと思い、、あきらめます。
ご回答ありがとうございます。
831デフォルトの名無しさん
2020/06/14(日) 11:24:19.06ID:2FaHAA2B ショートカットのプロパティで作業フォルダを弄ればいいだろ。
リンク先のバッチで%cd%参照。
ファイル名なんてリンク先に合わせりゃいいだろ。
リンク先のバッチで%cd%参照。
ファイル名なんてリンク先に合わせりゃいいだろ。
832デフォルトの名無しさん
2020/06/14(日) 11:26:00.19ID:Q6c7IGAp833デフォルトの名無しさん
2020/06/14(日) 11:45:22.44ID:2FaHAA2B プロパティのリンク先に自分のフルパスを追加してもいい
リンク先のバッチで%1参照。
リンク先のバッチで%1参照。
834デフォルトの名無しさん
2020/06/14(日) 12:14:20.27ID:Nip9LUw0835デフォルトの名無しさん
2020/06/14(日) 12:15:45.60ID:Nip9LUw0836デフォルトの名無しさん
2020/06/14(日) 12:16:13.25ID:Rvue1P4U ショートカット名を動的に生成してダブルクリックだけでリンク先のバッチへ引数として渡したいって事なんじゃないの?
ショートカット名を一時ファイル代わりにしたかったんだと思ってたけど
ショートカット名を一時ファイル代わりにしたかったんだと思ってたけど
837デフォルトの名無しさん
2020/06/14(日) 12:17:49.77ID:Nip9LUw0838デフォルトの名無しさん
2020/06/14(日) 12:18:03.34ID:2FaHAA2B 作業フォルダを空欄にするだけなんだけど
839デフォルトの名無しさん
2020/06/14(日) 12:20:20.62ID:Nip9LUw0840デフォルトの名無しさん
2020/06/14(日) 12:25:13.85ID:Nip9LUw0 ショートカットの代わりにバッチを呼ぶためのバッチを作ればよいことに今気づきました。
ショートカットのコマンドラインで自分を参照する記述が出来そうもないことも確認できたので収穫でした。
みなさんおつきあい頂きありがとうございます。
ショートカットのコマンドラインで自分を参照する記述が出来そうもないことも確認できたので収穫でした。
みなさんおつきあい頂きありがとうございます。
841デフォルトの名無しさん
2020/06/14(日) 12:32:21.09ID:Rvue1P4U842デフォルトの名無しさん
2020/06/14(日) 12:47:38.30ID:zWNqxiy9 別フォルダにコピーする時点で親フォルダ分かってるんじゃない?
843デフォルトの名無しさん
2020/06/14(日) 19:57:43.39ID:Nip9LUw0 >>841
おおお、なるほど!
StartInを指定しなければ、CurrentDirectoryは移動しないのか。
リンクファイル名の方は無理そうですが、親フォルダはこれでいけそうです。
感謝!!
VBAのApplication.Callerみたいなのが書ければいいんですけどね。
おおお、なるほど!
StartInを指定しなければ、CurrentDirectoryは移動しないのか。
リンクファイル名の方は無理そうですが、親フォルダはこれでいけそうです。
感謝!!
VBAのApplication.Callerみたいなのが書ければいいんですけどね。
844デフォルトの名無しさん
2020/06/14(日) 20:09:16.72ID:2FaHAA2B 作業フォルダが空だと他所のフォルダからD&Dしたらそっちになるけどな。
あと、管理者権限で実行したらC:\WINDOWS\system32になったりする
あと、管理者権限で実行したらC:\WINDOWS\system32になったりする
845デフォルトの名無しさん
2020/06/14(日) 20:15:00.02ID:Nip9LUw0 >>844
そうなりますね。気をつけます。
そうなりますね。気をつけます。
846デフォルトの名無しさん
2020/06/14(日) 21:58:02.09ID:Nip9LUw0 すみません。もう1つ質問です。
バッチ自身を最小化して起動するときどうされてますか?
これが理由の1つでショートカット起動していたのですが、代わりにバッチを使うとコンソールが表示されてしまいます。
サイトでよく見かける、@If not "%~0"... というやつは、Win7のためか機能しません。
普段は固定的に行う場合は、ショートカットやVBSをはさみ最小化実行しているのですが、、
うまい方法があれば教えてください。
バッチ自身を最小化して起動するときどうされてますか?
これが理由の1つでショートカット起動していたのですが、代わりにバッチを使うとコンソールが表示されてしまいます。
サイトでよく見かける、@If not "%~0"... というやつは、Win7のためか機能しません。
普段は固定的に行う場合は、ショートカットやVBSをはさみ最小化実行しているのですが、、
うまい方法があれば教えてください。
847デフォルトの名無しさん
2020/06/15(月) 14:19:29.38ID:YYrFY+5A 無い
848デフォルトの名無しさん
2020/06/15(月) 19:14:00.08ID:X3dRtIQ2 >>847
了解!
了解!
849デフォルトの名無しさん
2020/06/15(月) 19:21:32.94ID:bzzr0fEY start
850デフォルトの名無しさん
2020/06/15(月) 21:31:09.57ID:xZsc1Mf0 pause
851デフォルトの名無しさん
2020/06/16(火) 06:44:47.17ID:zfRgO9so PowerShell なら、
# ショートカットファイルのフルパス
$fn = "フルパス"
# ショートカットファイル(.lnk)から、リンク先パス(TargetPath)を読み取る
$link = $wsh.CreateShortcut( $fn )
# 画面に表示する
Write-Host "$( $fn )`nTargetFile: $( $link.TargetPath )"
# ショートカットファイルのフルパス
$fn = "フルパス"
# ショートカットファイル(.lnk)から、リンク先パス(TargetPath)を読み取る
$link = $wsh.CreateShortcut( $fn )
# 画面に表示する
Write-Host "$( $fn )`nTargetFile: $( $link.TargetPath )"
852851
2020/06/16(火) 06:47:46.73ID:zfRgO9so853デフォルトの名無しさん
2020/06/16(火) 09:13:19.74ID:n71ojSL1 wsh呼び出すならvbsでも使えばいいわけで…
854デフォルトの名無しさん
2020/06/16(火) 15:49:55.53ID:0FicG8jZ リンク先バッチ本体をコピーしたらあかんの?
855デフォルトの名無しさん
2020/06/16(火) 16:06:26.98ID:0FicG8jZ 動的に変化するのか?
856デフォルトの名無しさん
2020/06/16(火) 22:29:49.48ID:woSalLPH >>851
あれ、まだ続いてましたね。
えーと、リンクファイルの情報を取得するのではなくて、リンク先からリンク元を取得できないか、という相談でした。
結論としては、.LnkのStartInをクリアすることでBatch側から%CD%にて.Lnkの親フォルダは取得可能だが、
.Lnkのファイル名を取得する手段はない、と認識しました。
もしかして、PowerShellなら取得できますか?
あれ、まだ続いてましたね。
えーと、リンクファイルの情報を取得するのではなくて、リンク先からリンク元を取得できないか、という相談でした。
結論としては、.LnkのStartInをクリアすることでBatch側から%CD%にて.Lnkの親フォルダは取得可能だが、
.Lnkのファイル名を取得する手段はない、と認識しました。
もしかして、PowerShellなら取得できますか?
857デフォルトの名無しさん
2020/06/16(火) 22:38:20.68ID:woSalLPH >>854
Batchを複製すればできますね。
でも仕様を変更したくなったときばらまいたBatchをすべてメンテするのがメンドーなので設計は1カ所にしておきたい。
ショートカットファイルだとリンク先からリンク元のファイル名を取得できない (Pathは取得可)のでこれを別のバッチで代用すれば対応できる。
(現時点、これで代用してます)
でもこんどは起動がショートカットからBatchに変更されたことで最小化起動ができなくなった。
で、バッチを最小化で生起動する方法は、、無い!という結論です。
というところで諦めています。
Batchを複製すればできますね。
でも仕様を変更したくなったときばらまいたBatchをすべてメンテするのがメンドーなので設計は1カ所にしておきたい。
ショートカットファイルだとリンク先からリンク元のファイル名を取得できない (Pathは取得可)のでこれを別のバッチで代用すれば対応できる。
(現時点、これで代用してます)
でもこんどは起動がショートカットからBatchに変更されたことで最小化起動ができなくなった。
で、バッチを最小化で生起動する方法は、、無い!という結論です。
というところで諦めています。
858デフォルトの名無しさん
2020/06/16(火) 23:14:22.53ID:yH2E1+y3 おまえ要領を得ないって良く言われるだろ
何を最小化したいの?コンソール画面?バッチから起動したアプリ?
アプリ起動にバッチを介するようになって困っているようだけど
コンソールはすぐ消えるから大して困らんでしょ
その一瞬も困るってこと?
コンソールならバッチへのショートカットのプロパティに[実行時の大きさ]
アプリならstart /min
そのバッチを貼れない理由でもあるの?
何を最小化したいの?コンソール画面?バッチから起動したアプリ?
アプリ起動にバッチを介するようになって困っているようだけど
コンソールはすぐ消えるから大して困らんでしょ
その一瞬も困るってこと?
コンソールならバッチへのショートカットのプロパティに[実行時の大きさ]
アプリならstart /min
そのバッチを貼れない理由でもあるの?
859デフォルトの名無しさん
2020/06/16(火) 23:24:30.52ID:C/0BZ8DU そんなへんなことするようなものは俺なら要らんと言うな
説明書に手順を書くなり、起動用のps1やvbsでも同梱しとけばいいと思う
説明書に手順を書くなり、起動用のps1やvbsでも同梱しとけばいいと思う
860デフォルトの名無しさん
2020/06/16(火) 23:48:59.36ID:zfRgO9so 漏れなんか、ダブルクリックで、Ruby スクリプトを実行するために、
test.vbs に、起動部分だけを書いてる
CreateObject("WScript.Shell").Run "ruby .\script.rb", 0
test.vbs に、起動部分だけを書いてる
CreateObject("WScript.Shell").Run "ruby .\script.rb", 0
861デフォルトの名無しさん
2020/06/17(水) 02:23:38.88ID:1C8hVY+b もうやめろ。くだらねえ
862デフォルトの名無しさん
2020/06/17(水) 03:27:41.75ID:pABU+G65 だから結論はでた、諦めてると言ってるだろ。
返してくれた方がいたので返答しただけ。
ただ一瞬コンソールが表示される挙動がきっちゃないからキライってだけ。
はい、本件Close。
有用な情報提供いただいた皆さんありがとう。
返してくれた方がいたので返答しただけ。
ただ一瞬コンソールが表示される挙動がきっちゃないからキライってだけ。
はい、本件Close。
有用な情報提供いただいた皆さんありがとう。
863デフォルトの名無しさん
2020/06/17(水) 07:10:17.14ID:jbUYdqRV よくわからんけど start /b /min を使うのではだめなのかしら
と独り言
と独り言
864デフォルトの名無しさん
2020/06/17(水) 08:16:21.96ID:tu0J1xQb >>863
/bスイッチって何でしたっけ?
/bスイッチって何でしたっけ?
865デフォルトの名無しさん
2020/06/18(木) 03:29:25.23ID:00is865e866デフォルトの名無しさん
2020/06/18(木) 07:09:08.15ID:EpKOfb9E867デフォルトの名無しさん
2020/06/18(木) 15:00:22.59ID:L9lBZl+g そんな自己満足でひとりよがりなものを配布したりして欲しくはないかな
868デフォルトの名無しさん
2020/06/18(木) 20:51:24.52ID:sqKtSFf3 ここまでの流れで誰も配布するなんて話してないのにお前は何を言ってるんだ?
866の好きにさせとけよ
866の好きにさせとけよ
869デフォルトの名無しさん
2020/06/18(木) 22:53:59.19ID:EpKOfb9E870デフォルトの名無しさん
2020/06/19(金) 00:05:08.15ID:HgOFevSP クローズしたそうだが
コンソール画面を見たくないのなら
レイアウトの位置を右下に詰めろ。
ほとんど見えなくなるぞ
コンソール画面を見たくないのなら
レイアウトの位置を右下に詰めろ。
ほとんど見えなくなるぞ
871デフォルトの名無しさん
2020/06/19(金) 00:27:18.52ID:TPV7TWbz 殆どじゃダメなんだよ
神経質な奴に見つけられてしまう
神経質な奴に見つけられてしまう
872デフォルトの名無しさん
2020/06/19(金) 00:33:46.55ID:HgOFevSP お前、質問者か?
873デフォルトの名無しさん
2020/06/19(金) 03:17:24.40ID:7A38Sw4m テキストファイルから空行を除く方法
findstr /R .
ただし空白やタブのある空行は失敗
findstr /R .
ただし空白やタブのある空行は失敗
874デフォルトの名無しさん
2020/06/19(金) 05:11:07.46ID:HgOFevSP >>873
タブやスペースだけの行をスキップするには
findstr /r /c:"[^ ]"
^と]の間にタブとスペース入力
バッチではエディタでタブ入力できるが
コマンドプロンプトでタブ入力するには cmd /f:off で
タブやスペースだけの行をスキップするには
findstr /r /c:"[^ ]"
^と]の間にタブとスペース入力
バッチではエディタでタブ入力できるが
コマンドプロンプトでタブ入力するには cmd /f:off で
875デフォルトの名無しさん
2020/06/19(金) 05:34:11.61ID:HgOFevSP for〜do〜echoでやった方がいいかも
876デフォルトの名無しさん
2020/06/27(土) 20:08:23.94ID:dZCme2QN テキストファイルに入ってる文字列を
一行ごとに読み込んで
フォルダを作るバッチをつくったのですが
半角スペースの文字列が分割されてしまいます
これって対応策ありますか?
一行ごとに読み込んで
フォルダを作るバッチをつくったのですが
半角スペースの文字列が分割されてしまいます
これって対応策ありますか?
877デフォルトの名無しさん
2020/06/27(土) 20:23:13.74ID:7ozUCHmg >>876
for /f "tokens=*" %%i in (data.txt) do md "%%~i"
for /f "tokens=*" %%i in (data.txt) do md "%%~i"
878デフォルトの名無しさん
2020/06/28(日) 21:21:38.87ID:elMokmc1879デフォルトの名無しさん
2020/06/30(火) 15:01:18.03ID:SwuJ9TNP ファイル名全角英字の大文字小文字を同じとみなしていた
A.txt に他フォルダのa.txtを上書きコピーしてもA,txtのままだった
Aaは全角英字
芸が細かい、いいか悪いかは別として
A.txt に他フォルダのa.txtを上書きコピーしてもA,txtのままだった
Aaは全角英字
芸が細かい、いいか悪いかは別として
880デフォルトの名無しさん
2020/06/30(火) 19:03:57.21ID:PSeL/c0z ワイルドカードの ? の仕様がイマイチ分からない
abc と abc1 のファイルがあったとして
>dir /b abc?
abc
abc1
>dir /b ?abc
ファイルが見つかりません
>dir /b a?bc
ファイルが見つかりません
なぜ見つからないのか
1ないし0個の文字じゃないのか
abc と abc1 のファイルがあったとして
>dir /b abc?
abc
abc1
>dir /b ?abc
ファイルが見つかりません
>dir /b a?bc
ファイルが見つかりません
なぜ見つからないのか
1ないし0個の文字じゃないのか
881デフォルトの名無しさん
2020/06/30(火) 19:07:42.99ID:/pl8PJcc ワイルドカードで?は任意の1文字を示す
882デフォルトの名無しさん
2020/06/30(火) 19:14:29.14ID:PSeL/c0z では abc? で abc が一致するのはなぜ
883デフォルトの名無しさん
2020/06/30(火) 19:19:02.81ID:/pl8PJcc abc.でマッチするからだと思う
884デフォルトの名無しさん
2020/06/30(火) 19:21:41.87ID:PSeL/c0z なるほど。ありがとう
885デフォルトの名無しさん
2020/06/30(火) 19:28:18.05ID:PSeL/c0z abc?? や abc??? でも一致するようだ
886デフォルトの名無しさん
2020/06/30(火) 19:49:40.78ID:tIigavUn887デフォルトの名無しさん
2020/06/30(火) 19:59:31.31ID:PSeL/c0z abc??.?? とかも一致するね。たぶん仕様というよりバグ
888デフォルトの名無しさん
2020/06/30(火) 21:39:19.92ID:clO9Gt1K ピリオドが絡むとワイルドカードはおかしな動きするよ。
filename_yyyy.mm.dd.dat
みたいなもんが
dir *_????.??.??.dat
で引っかからない。>>887 の言う通り、多分バグ。ピリオド以降を拡張子とみなすみたい。
filename_yyyy-mm-dd.dat
として
dir *_????-??-??.dat
だとちゃんと引っかかるから、俺はファイル名に日付を付けるなら - を使っている。
filename_yyyy.mm.dd.dat
みたいなもんが
dir *_????.??.??.dat
で引っかからない。>>887 の言う通り、多分バグ。ピリオド以降を拡張子とみなすみたい。
filename_yyyy-mm-dd.dat
として
dir *_????-??-??.dat
だとちゃんと引っかかるから、俺はファイル名に日付を付けるなら - を使っている。
889デフォルトの名無しさん
2020/07/01(水) 07:22:43.96ID:sbIkpZ+y ワイルドカードは色々とおかしい
>echo > "abc" & echo > " abc"
>for %i in ("abc*") do @echo "%i"
"abc"
" abc"
>echo > "abc" & echo > " abc"
>for %i in ("abc*") do @echo "%i"
"abc"
" abc"
890デフォルトの名無しさん
2020/07/01(水) 07:57:25.88ID:9hqgfVHi そっちはたぶん8.3形式が引っかかってるんだろう
891デフォルトの名無しさん
2020/07/04(土) 22:02:55.18ID:r0U5W+Xd PC初心者です。
初めてバッチファイルの作成にチャレンジしています。
ドライブ(丸ごと)→別のドライブのフォルダ、にバックアップを取りたくてrobocopyを使ってミラーコピーをしました。
コピーはうまくいくのですが、コピーする度にコピー先に「Recovery」という名の空フォルダが作成されてしまいます。
これはなぜでしょうか?回避方法はありますか?
初めてバッチファイルの作成にチャレンジしています。
ドライブ(丸ごと)→別のドライブのフォルダ、にバックアップを取りたくてrobocopyを使ってミラーコピーをしました。
コピーはうまくいくのですが、コピーする度にコピー先に「Recovery」という名の空フォルダが作成されてしまいます。
これはなぜでしょうか?回避方法はありますか?
892デフォルトの名無しさん
2020/07/04(土) 22:37:12.45ID:KIcU78VY >>891
ggrks
ggrks
893デフォルトの名無しさん
2020/07/04(土) 22:39:29.92ID:QUXtQ3do たぶん、A ファイルがあって、それを上書きする時に、
安全確保のために一旦、別のフォルダ・Recovery へコピーしてから、上書きして、
正常に上書きした後に、Recovery内のA を削除している
ただ、すべて正常に済んだ後に、Recoveryフォルダを削除し忘れているのだろう
安全確保のために一旦、別のフォルダ・Recovery へコピーしてから、上書きして、
正常に上書きした後に、Recovery内のA を削除している
ただ、すべて正常に済んだ後に、Recoveryフォルダを削除し忘れているのだろう
895デフォルトの名無しさん
2020/07/05(日) 15:06:46.22ID:1amJ61U+896891
2020/07/07(火) 00:32:35.56ID:TndHy5rX897デフォルトの名無しさん
2020/07/08(水) 04:28:57.30ID:lPT19RKJ 超初歩的な質問いいですか?
@https://i.imgur.com/hyYJbJE.png
Ahttps://i.imgur.com/REf3PXQ.png
Bhttps://i.imgur.com/UIqO0ye.png
@のCというフォルダを中にある1.txt 2.txtごとAにコピーしてBのようにしたい時、どう入力したらいいですか?
すでにBのような状態にある時もコピーして上書きしたいのですが
ググれって言われるのはわかってますが、ディレクトリがどうのこうのとか、robocopyだのxcopyだの説明が糞下手くそであんなの理解できるわけないので
@https://i.imgur.com/hyYJbJE.png
Ahttps://i.imgur.com/REf3PXQ.png
Bhttps://i.imgur.com/UIqO0ye.png
@のCというフォルダを中にある1.txt 2.txtごとAにコピーしてBのようにしたい時、どう入力したらいいですか?
すでにBのような状態にある時もコピーして上書きしたいのですが
ググれって言われるのはわかってますが、ディレクトリがどうのこうのとか、robocopyだのxcopyだの説明が糞下手くそであんなの理解できるわけないので
898デフォルトの名無しさん
2020/07/08(水) 04:57:01.58ID:xPuqy2ih899デフォルトの名無しさん
2020/07/08(水) 05:13:48.40ID:H59ZusVp >>897
普通にcopy使えよ
普通にcopy使えよ
900デフォルトの名無しさん
2020/07/08(水) 05:29:09.34ID:plYM8yLW >>897
要件はそれだけか?
メッセージを表示しないだとか、\A\Cには他ファイルやサブフォルダがあり
それはコピー対象/対象外だとか無いの?
\Cは常に同じなら、事前にフォルダを作っておいて、あとは毎回copyだけを実行するだけ
A,B,Cが実際には半角空白を含んでいたりしたらパスは""で括ること
mkdir C\Users\a\Desktop\B\V\C
copy /y C\Users\a\Desktop\A\C\*.txt C:\Users\a\Desktop\B\V\C
xcopyを使うなら
xcopy /s/e/i/y C:\Users\a\Desktop\A\C C:\Users\a\Desktop\B\V\C
又は
xcopy /s/e/i/y C:\Users\a\Desktop\A C:\Users\a\Desktop\B\V
要件はそれだけか?
メッセージを表示しないだとか、\A\Cには他ファイルやサブフォルダがあり
それはコピー対象/対象外だとか無いの?
\Cは常に同じなら、事前にフォルダを作っておいて、あとは毎回copyだけを実行するだけ
A,B,Cが実際には半角空白を含んでいたりしたらパスは""で括ること
mkdir C\Users\a\Desktop\B\V\C
copy /y C\Users\a\Desktop\A\C\*.txt C:\Users\a\Desktop\B\V\C
xcopyを使うなら
xcopy /s/e/i/y C:\Users\a\Desktop\A\C C:\Users\a\Desktop\B\V\C
又は
xcopy /s/e/i/y C:\Users\a\Desktop\A C:\Users\a\Desktop\B\V
901デフォルトの名無しさん
2020/07/08(水) 05:44:34.05ID:lPT19RKJ902デフォルトの名無しさん
2020/07/08(水) 11:29:53.61ID:Z8A6jaoN xcopy よりは、robocopy を使った方が良いのでは?
xcopyは、あまり見ない
xcopyは、あまり見ない
903デフォルトの名無しさん
2020/07/08(水) 12:24:18.71ID:lp5P2pBO dosで使えなくなるだろ
904デフォルトの名無しさん
2020/07/08(水) 12:46:00.57ID:Lb+zauke たしかに、DOSは、Xcopyまでだったか。
pureDOSには、robocopyはないのだな。
pureDOSには、robocopyはないのだな。
905デフォルトの名無しさん
2020/07/08(水) 12:56:46.06ID:plYM8yLW robocopyは絶望的に遅い
複雑な条件がないのならxcopyがいい
複雑な条件がないのならxcopyがいい
906デフォルトの名無しさん
2020/07/08(水) 15:01:55.81ID:z330e5aM robocopyは、ミラーリングで使用したときに、
消される側にフォルダのシンボリックリンクがあると、
リンク先実体フォルダ内のファイルごと消されるというバグが有る。
/xjd /xjf /xj /sl 全部ダメ。
怖くて使えない。
消される側にフォルダのシンボリックリンクがあると、
リンク先実体フォルダ内のファイルごと消されるというバグが有る。
/xjd /xjf /xj /sl 全部ダメ。
怖くて使えない。
907デフォルトの名無しさん
2020/07/08(水) 18:21:45.08ID:ebRsk5Wi ま?
908895
2020/07/08(水) 19:29:53.78ID:fFkGRU4d >>896
空なら大丈夫だと思うけど、場合によってはそこに WinRE (Windows 回復環境)が入ることがある。
(バグやディスク容量の関係)
https://www.atmarkit.co.jp/ait/articles/2002/19/news006.html
だから丸っきり不要ってわけでもないのだよ。
空なら大丈夫だと思うけど、場合によってはそこに WinRE (Windows 回復環境)が入ることがある。
(バグやディスク容量の関係)
https://www.atmarkit.co.jp/ait/articles/2002/19/news006.html
だから丸っきり不要ってわけでもないのだよ。
909デフォルトの名無しさん
2020/07/09(木) 01:19:26.67ID:oG8bZA2s http://itomo.cocolog-nifty.com/itomolog/2011/06/windows-4df1.html
このサイトを参考に実験フォルダにテキストファイルを量産して*.txtで検索するように書き換えて実行したんだけど
(ファイル名)が見つかりません。って表示が出るだけで上手くいかないけど何か抜けてるのかな?
もちろん対象フォルダには移動している
このサイトを参考に実験フォルダにテキストファイルを量産して*.txtで検索するように書き換えて実行したんだけど
(ファイル名)が見つかりません。って表示が出るだけで上手くいかないけど何か抜けてるのかな?
もちろん対象フォルダには移動している
910デフォルトの名無しさん
2020/07/09(木) 02:32:11.02ID:zMPqHoYq >>909
先頭のecho off をいったん外して、変数がどう展開されてるか確認してみたら?
先頭のecho off をいったん外して、変数がどう展開されてるか確認してみたら?
911デフォルトの名無しさん
2020/07/09(木) 04:53:54.78ID:gEWbrPAM Ruby で作った。
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*.txt"
num = 5 # 更新時刻の新しいものからの順で、フォルダに残しておくファイルの数
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.sort_by { |full_path| File.mtime( full_path ) } # 更新時刻の古い順で、ソートする
.reverse # 更新時刻の新しい順へ、逆転
.drop( num ) # 新しいものから、num個を処理しない
.each { |full_path| FileUtils::DryRun.rm( full_path ) } # ファイルを削除
表示
rm C:/Users/Owner/Documents/a.txt
rm C:/Users/Owner/Documents/b.txt
ただし、DryRun なので実際には実行されません!
require 'fileutils'
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*.txt"
num = 5 # 更新時刻の新しいものからの順で、フォルダに残しておくファイルの数
Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.sort_by { |full_path| File.mtime( full_path ) } # 更新時刻の古い順で、ソートする
.reverse # 更新時刻の新しい順へ、逆転
.drop( num ) # 新しいものから、num個を処理しない
.each { |full_path| FileUtils::DryRun.rm( full_path ) } # ファイルを削除
表示
rm C:/Users/Owner/Documents/a.txt
rm C:/Users/Owner/Documents/b.txt
912デフォルトの名無しさん
2020/07/09(木) 06:30:12.62ID:o2t2WZIU rubyなんて論外、PowerShellですらギリアウト
ギリアウトだがPowerShellのコマンドラインで標準のエイリアスを使う場合
カレントフォルダの *.txt の最新3個以外をリストアップするには
gi *.txt | sort LastWriteTime -Descending | select -Skip 3
削除までやるなら
gi *.txt | sort LastWriteTime -Descending | select -Skip 3 | ri
エイリアスを使わずに書くと
Get-Item *.txt | Sort-Object LastAccessTime -Descending | Select-Object -Skip 3 | Remove-Item
ギリアウトだがPowerShellのコマンドラインで標準のエイリアスを使う場合
カレントフォルダの *.txt の最新3個以外をリストアップするには
gi *.txt | sort LastWriteTime -Descending | select -Skip 3
削除までやるなら
gi *.txt | sort LastWriteTime -Descending | select -Skip 3 | ri
エイリアスを使わずに書くと
Get-Item *.txt | Sort-Object LastAccessTime -Descending | Select-Object -Skip 3 | Remove-Item
913デフォルトの名無しさん
2020/07/09(木) 06:31:35.37ID:o2t2WZIU ああ LastAccessTimeじゃくてLastWriteTime
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
