拡張子が .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
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
914デフォルトの名無しさん
2020/07/09(木) 13:30:39.43ID:oG8bZA2s >>910
初歩的なミスで恥ずかしいですが量産したテキストファイル名に空白が入っている事が原因でした
そこで汎用性を持たせるために空白が入ったファイルも検出したいのですがワイルドカードで検索する方法はありますか?
初歩的なミスで恥ずかしいですが量産したテキストファイル名に空白が入っている事が原因でした
そこで汎用性を持たせるために空白が入ったファイルも検出したいのですがワイルドカードで検索する方法はありますか?
915デフォルトの名無しさん
2020/07/09(木) 16:17:08.38ID:t1UM8kjV >>914
ファイル名に相当する箇所をクオート
ファイル名に相当する箇所をクオート
916デフォルトの名無しさん
2020/07/15(水) 06:27:24.24ID:pJbYwVEp https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/set_1
setコマンドのパラメータで/pとか/aとか指定できますがこのアルファベット1文字が何の略か教えてください
pはPromptStringかな〜と予想してるんですがaは全く見当がつかないです
setコマンドのパラメータで/pとか/aとか指定できますがこのアルファベット1文字が何の略か教えてください
pはPromptStringかな〜と予想してるんですがaは全く見当がつかないです
917デフォルトの名無しさん
2020/07/15(水) 06:51:32.91ID:73kyB1S/ Arithmetic
918デフォルトの名無しさん
2020/07/15(水) 15:46:16.46ID:nRIpdjFe if 感染者数==0 (
goto campaign
) else (
goto campaign
)
goto campaign
) else (
goto campaign
)
919デフォルトの名無しさん
2020/07/15(水) 21:08:21.69ID:NpGOzuTH w
920デフォルトの名無しさん
2020/07/15(水) 22:58:28.42ID:SqApoBlS921デフォルトの名無しさん
2020/07/15(水) 23:48:35.91ID:vc+VU4Sj >>917 が教えてくれてるよ
922デフォルトの名無しさん
2020/07/15(水) 23:53:31.66ID:SqApoBlS >>921
arithmetic(算術) もいいけど algebra(代数)て解釈もあんじゃね?
arithmetic(算術) もいいけど algebra(代数)て解釈もあんじゃね?
923デフォルトの名無しさん
2020/07/16(木) 00:26:22.36ID:3qBZIgLF /a は 単純に answer かな
924デフォルトの名無しさん
2020/07/16(木) 05:41:06.12ID:smyagw08925デフォルトの名無しさん
2020/07/16(木) 11:47:24.17ID:lU9BoPI+ 以降あいうえお作文スレ
926デフォルトの名無しさん
2020/07/16(木) 13:33:25.11ID:d6//+ANU Arithmeticって+-*/のことじゃないの?
927デフォルトの名無しさん
2020/07/17(金) 00:25:33.43ID:C6Q8EyYV +とか-はarithmetic operatorだね
928デフォルトの名無しさん
2020/07/18(土) 01:59:17.03ID:6qVTTMhl 大体は理想通りに出来たのですが時々不要なpathをremで無効にするとstartコマンドがなぜかC:\hoge\を開いてしまうので回避できないでしょうか?
バッチ初心者なので汚いのはご容赦下さい
SET TARGET_EXE1=C:\hoge\hoge.bat
SET TARGET_EXE2=C:\hoge\huge.lnk
rem SET TARGET_EXE3=C:\hoge\hege.exe
for /l %%i in (1,1,6) do (call :F_NM "%%TARGET_EXE%%i%%")
timeout /t 8 > NUL
exit 0
:F_NM
echo %~nx1
START "" %1
goto :EOF
バッチ初心者なので汚いのはご容赦下さい
SET TARGET_EXE1=C:\hoge\hoge.bat
SET TARGET_EXE2=C:\hoge\huge.lnk
rem SET TARGET_EXE3=C:\hoge\hege.exe
for /l %%i in (1,1,6) do (call :F_NM "%%TARGET_EXE%%i%%")
timeout /t 8 > NUL
exit 0
:F_NM
echo %~nx1
START "" %1
goto :EOF
929デフォルトの名無しさん
2020/07/18(土) 05:56:42.11ID:mgWYGhz7 if not "%~1"=="" START "" %1
930デフォルトの名無しさん
2020/07/18(土) 08:09:21.26ID:ddPranTH if exist "%~1" start "" "%~1"
931デフォルトの名無しさん
2020/07/18(土) 08:50:03.50ID:ddPranTH for /l %%i in (1,1,6) do (if defined TARGET_EXE%%i call :F_NM "%%TARGET_EXE%%i%%")
932デフォルトの名無しさん
2020/07/18(土) 14:36:51.45ID:4sfyyT7O933デフォルトの名無しさん
2020/07/18(土) 15:31:48.20ID:GUFQRDdz >>929
すいません startコマンドのクォーテーションを二重がけにはどんな意味があるのでしょうか?
すいません startコマンドのクォーテーションを二重がけにはどんな意味があるのでしょうか?
934デフォルトの名無しさん
2020/07/18(土) 15:40:41.02ID:VVrReUQE start /?
最初のは "タイトル"
最初のは "タイトル"
935デフォルトの名無しさん
2020/07/18(土) 19:10:23.40ID:mgWYGhz7936デフォルトの名無しさん
2020/07/18(土) 20:08:37.75ID:xxg3trOa "" START ""
に見えたってことなら
if not "%~1"=="" (
START "" %1
)
こうね
に見えたってことなら
if not "%~1"=="" (
START "" %1
)
こうね
937デフォルトの名無しさん
2020/07/19(日) 00:01:19.79ID:nPfUu10f938デフォルトの名無しさん
2020/07/19(日) 00:15:51.03ID:nmSNkapE >>936
完全にこれでしたすみません
完全にこれでしたすみません
939デフォルトの名無しさん
2020/07/31(金) 20:28:20.67ID:uhGaPqk6 面白い書き方見付けた
c:\APP\DoeView>popd
c:\APP>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail]
2020/07/31 (金)20:14:34.70 [pushd:ok]
c:\APP\DoeView>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail]
2020/07/31 (金)20:14:38.48 [pushd:fail]
c:\APP\DoeView>popd
c:\APP>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail]
2020/07/31 (金)20:14:34.70 [pushd:ok]
c:\APP\DoeView>set /p<nul=%date%%time% [pushd:&@pushd doeview >nul 2>&1 && echo ok]||echo fail]
2020/07/31 (金)20:14:38.48 [pushd:fail]
940デフォルトの名無しさん
2020/08/01(土) 00:13:59.61ID:oGghCVi0 >>939
解説お願いします
解説お願いします
941デフォルトの名無しさん
2020/08/01(土) 01:53:16.42ID:mxUlZpQQ 他のプログラムと標準入出力でやりとりするバッチファイルを作ろうとしています。
:INPUT
set /p INP=
if "%INP%"=="コマンド1" (
処理1
echo 結果1
goto INPUT)
if "%INP%"=="コマンド2" (
処理2
echo 結果2
goto INPUT)
…
goto INPUT
こんな感じにしたんですが、コマンドが連続で送られてくると取りこぼしてしまうようです。
何か対策は無いでしょうか?
:INPUT
set /p INP=
if "%INP%"=="コマンド1" (
処理1
echo 結果1
goto INPUT)
if "%INP%"=="コマンド2" (
処理2
echo 結果2
goto INPUT)
…
goto INPUT
こんな感じにしたんですが、コマンドが連続で送られてくると取りこぼしてしまうようです。
何か対策は無いでしょうか?
942デフォルトの名無しさん
2020/08/01(土) 06:07:29.27ID:hnL660kY 他のとやらが標準出力読めるなら
set /p INP=inputok
読めないならこぼさない程度に決め打ちでsleep挟んで送るようにするしか
set /p INP=inputok
読めないならこぼさない程度に決め打ちでsleep挟んで送るようにするしか
943デフォルトの名無しさん
2020/08/01(土) 10:06:48.10ID:KdkXblI6 >>939
なるほど
set /p<nul=%date%%time% [pushd:
と
@pushd doeview >nul 2>&1 && echo ok]||echo fail]
を & でつないだという訳か。で前半を普通の順番に書き直すと
set /p =%date%%time% [pushd:<nul
で、set /pの変数名を空にすることで、改行をつけないechoの代わりとして使っていると。
後半はpushd doeviewを実行して、成功したらok]、失敗したらfail]を表示してるだけだな。
なるほど
set /p<nul=%date%%time% [pushd:
と
@pushd doeview >nul 2>&1 && echo ok]||echo fail]
を & でつないだという訳か。で前半を普通の順番に書き直すと
set /p =%date%%time% [pushd:<nul
で、set /pの変数名を空にすることで、改行をつけないechoの代わりとして使っていると。
後半はpushd doeviewを実行して、成功したらok]、失敗したらfail]を表示してるだけだな。
944デフォルトの名無しさん
2020/08/01(土) 15:48:10.34ID:mxUlZpQQ945デフォルトの名無しさん
2020/08/01(土) 16:20:21.81ID:hnL660kY copy nul $tmp.txt
hoge.exe >>$tmp.txt
for /f "delims=" %%a in ($tmp.txt) do (
if "%%a"=="コマンド1" (処理1 &echo 結果1)
if "%%a"=="コマンド2" (処理2 &echo 結果2)
…
)
こういう風に一旦txtに書き出しじゃダメなん?
hoge.exe >>$tmp.txt
for /f "delims=" %%a in ($tmp.txt) do (
if "%%a"=="コマンド1" (処理1 &echo 結果1)
if "%%a"=="コマンド2" (処理2 &echo 結果2)
…
)
こういう風に一旦txtに書き出しじゃダメなん?
946デフォルトの名無しさん
2020/08/01(土) 17:49:00.41ID:y/Re9bvj >>944
実行速度を気にしないゆっくりでいいのなら、
tasklist に実行するプログラムがあれば待機する
実行するプログラムの終了コード(errorlevel)の癖がわかっているなら
errorlevelで終わったかそうかわかるかも
実行速度を気にしないゆっくりでいいのなら、
tasklist に実行するプログラムがあれば待機する
実行するプログラムの終了コード(errorlevel)の癖がわかっているなら
errorlevelで終わったかそうかわかるかも
947デフォルトの名無しさん
2020/08/01(土) 23:16:08.23ID:mxUlZpQQ どうも「相手のプログラム」がイメージしづらいようなので、プログラムそのものを貼ります。
将棋所
http://shogidokoro.starfree.jp/index.html
USIプロトコル
http://shogidokoro.starfree.jp/usi.html
USIプロトコル対応の将棋エンジンをバッチファイルで作る、という遊びをしようとしています。
現状将棋エンジンとして登録する(usiコマンドに対してid他を返す)ところまではできますが、
対局しようとするとsetoptionとisreadyが連続で送られてきてisreadyを認識できず、readyokを返せない、等でまともに動きません。
デバッグウィンドウからコマンドを送れば一応動きますが…
>>945
一旦txtに出力するのは考えましたが、具体的な書き方が思いつきません…
将棋所に登録するバッチファイルと、コマンドを処理するバッチファイルの2つに分ける、
とかも考えたんですが、結局その2つのやり取りをどうすれば良いのか…
将棋所
http://shogidokoro.starfree.jp/index.html
USIプロトコル
http://shogidokoro.starfree.jp/usi.html
USIプロトコル対応の将棋エンジンをバッチファイルで作る、という遊びをしようとしています。
現状将棋エンジンとして登録する(usiコマンドに対してid他を返す)ところまではできますが、
対局しようとするとsetoptionとisreadyが連続で送られてきてisreadyを認識できず、readyokを返せない、等でまともに動きません。
デバッグウィンドウからコマンドを送れば一応動きますが…
>>945
一旦txtに出力するのは考えましたが、具体的な書き方が思いつきません…
将棋所に登録するバッチファイルと、コマンドを処理するバッチファイルの2つに分ける、
とかも考えたんですが、結局その2つのやり取りをどうすれば良いのか…
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【文春】《記事予告》国民的女優&人気俳優 不倫スクープ第2弾 ★6 [Ailuropoda melanoleuca★]
- 【文春】《記事予告》国民的女優&人気俳優 不倫スクープ第2弾 ★5 [Ailuropoda melanoleuca★]
- インド軍が係争地のパキスタン側に攻撃 26人犠牲テロへの報復 [七波羅探題★]
- 【野球】大谷翔平、2試合連発の特大10号 松井秀喜に並ぶ7度目の2桁HR…“伝説の地”で10-10到達 [征夷大将軍★]
- 米価高騰が日本人のコメ離れに拍車かける 茶わん1杯のごはんは4枚切り食パン1枚より高額の時代 ★4 [首都圏の虎★]
- 【鉄道】「無人駅」に停まった「ワンマン列車」外国人客と運賃のやりとりで約40分の遅れ…車内で運賃を支払うため発車できず JR山陰線 [ぐれ★]
- 大阪万博+57000 [931948549]
- アルゼンチン、税金を6種に減らし徴税コストの9割削減に成功、経済成長が急回復の兆し [249548894]
- __久しぶりにKindle起動、おすすめに安倍多め👈なぜ? [827565401]
- 自転車買いたいんだけどあさひでいいかな
- 「45歳だけど、大学に行って勉強し直そうと思う」 なぜかこれが日本だと笑われる件。おかしくないか?この国 [377388547]
- 日本人「今日も平和だなぁ」 [377482965]