拡張子が .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】
■ このスレッドは過去ログ倉庫に格納されています
2018/11/21(水) 14:52:07.84ID:v84I4o+L
725デフォルトの名無しさん
2020/04/21(火) 22:54:20.97ID:h/bjIQIw rubyはスレ違い
726デフォルトの名無しさん
2020/04/21(火) 23:04:39.20ID:s3lLVMWt 3桁連番付けただけ
@echo off & set n=1001
for %%i in (*.txt) do set a=%%i& call :x
goto :eof
:x
ren "%a%" "%n:~1%-%a%" & set /a n+=1
@echo off & set n=1001
for %%i in (*.txt) do set a=%%i& call :x
goto :eof
:x
ren "%a%" "%n:~1%-%a%" & set /a n+=1
727デフォルトの名無しさん
2020/04/21(火) 23:14:39.66ID:J0u+GdjC リネームは結構難しい
リネーム後のファイルが再びリネーム対象となる場合がある
リネーム後のファイルが再びリネーム対象となる場合がある
728デフォルトの名無しさん
2020/04/21(火) 23:27:06.64ID:alPdontK set N=1000
:LOOP
if "%~1"=="" exit /b
set /a N+=1
ren "%~1" "%N:~-3% %~nx1"
shift
goto :LOOP
:LOOP
if "%~1"=="" exit /b
set /a N+=1
ren "%~1" "%N:~-3% %~nx1"
shift
goto :LOOP
729デフォルトの名無しさん
2020/04/21(火) 23:28:37.78ID:s3lLVMWt リネーム後のファイル名が既存だったりするし
730デフォルトの名無しさん
2020/04/21(火) 23:49:32.13ID:GY5lnYbX リネームは一覧を一旦ファイルに出力してから回した方が安全だよ
それとファイル名にUNICODE文字が混ざってる場合も考慮するとバッチファイルではやらん方がいいよ
vbsかjsかpowershell
それとファイル名にUNICODE文字が混ざってる場合も考慮するとバッチファイルではやらん方がいいよ
vbsかjsかpowershell
731724
2020/04/21(火) 23:57:26.74ID:HADG6GDb >>724
のRuby では最初に、Dir.glob( "C:/Users/Owner/test/*" )
で、そのフォルダ内のすべてのファイルを取得しているから、
各ファイルを、rename していく途中で、
rename後のファイルを、再びrenameすることはない
のRuby では最初に、Dir.glob( "C:/Users/Owner/test/*" )
で、そのフォルダ内のすべてのファイルを取得しているから、
各ファイルを、rename していく途中で、
rename後のファイルを、再びrenameすることはない
732デフォルトの名無しさん
2020/04/22(水) 00:04:16.90ID:vEO7RF6u733デフォルトの名無しさん
2020/04/22(水) 06:52:59.32ID:gobEj/px >>721
@echo off & set "n=1001" & set t=tmp_dir
md %t% & for %%i in (*.txt) do set a=%%i& call :x
move %t%\* . > nul & rd %t% & goto :eof
:x
move "%a%" "%t%\%n:~1%-%a%" > nul & set /a n+=1
tmp_dirの名前は何でもいいが既存の名前を避けてください。
@echo off & set "n=1001" & set t=tmp_dir
md %t% & for %%i in (*.txt) do set a=%%i& call :x
move %t%\* . > nul & rd %t% & goto :eof
:x
move "%a%" "%t%\%n:~1%-%a%" > nul & set /a n+=1
tmp_dirの名前は何でもいいが既存の名前を避けてください。
734デフォルトの名無しさん
2020/04/22(水) 09:12:13.99ID:UZ0N9G3p735デフォルトの名無しさん
2020/04/22(水) 10:16:03.76ID:MJO3kN2U 駄目文字のせいでSJISコードがバグると言うならまだわかるが
その逆って意味がわからないな
MSは全くテストしてないってことか
その逆って意味がわからないな
MSは全くテストしてないってことか
736デフォルトの名無しさん
2020/04/22(水) 11:07:12.34ID:/W5c3Vma737デフォルトの名無しさん
2020/04/22(水) 11:53:22.55ID:/W5c3Vma 複数行を一行にまとめる場合は、&でつなぐんでしょうか?
これが改行と同じ意味でしょうかね。
これが改行と同じ意味でしょうかね。
738デフォルトの名無しさん
2020/04/22(水) 12:07:17.67ID:vEO7RF6u739デフォルトの名無しさん
2020/04/22(水) 19:08:42.79ID:nR8TNEgs740デフォルトの名無しさん
2020/04/22(水) 19:11:46.73ID:nR8TNEgs >>739
または複数コマンドを一行で記述する話?
または複数コマンドを一行で記述する話?
741デフォルトの名無しさん
2020/04/22(水) 20:05:53.95ID:j1ZYXyL3 >>735
コマンドプロンプトは自体はUNICODE対応
各種コマンドもUNICODE対応
だけどバッチファイルは過去の互換性が必要なので
デフォルトではOSの設定(日本語だとSJIS)の文字コードとして使われる。
その設定はchcpで変えることが出来る
単にコマンド呼び出しをしてるだけならUNICODEとして扱われるが
forでバッチファイルの世界に招き入れたら、
chcpの設定によって文字コードの変換が行われる
テストはしてるだろ。この文字コード変換は仕様なので
バッチファイルでUNICODE文字を扱いたければchcpで
UTF-8に変更しなければならないというだけのこと
コマンドプロンプトは自体はUNICODE対応
各種コマンドもUNICODE対応
だけどバッチファイルは過去の互換性が必要なので
デフォルトではOSの設定(日本語だとSJIS)の文字コードとして使われる。
その設定はchcpで変えることが出来る
単にコマンド呼び出しをしてるだけならUNICODEとして扱われるが
forでバッチファイルの世界に招き入れたら、
chcpの設定によって文字コードの変換が行われる
テストはしてるだろ。この文字コード変換は仕様なので
バッチファイルでUNICODE文字を扱いたければchcpで
UTF-8に変更しなければならないというだけのこと
742デフォルトの名無しさん
2020/04/23(木) 06:47:17.74ID:153+oMoq >>739
バッチファイルではなくて、複数行をコマンドプロンプト上で実行したい場合があったりします
バッチファイルではなくて、複数行をコマンドプロンプト上で実行したい場合があったりします
743デフォルトの名無しさん
2020/04/23(木) 08:24:04.38ID:5iduMLE+ >>742
複数行をコピペじゃ駄目なの?
例えば、この内容をメモ帳に記述しておいて
rem ―- ここから ――
dism /online /cleanup-image /restorehealth
sfc /scannow
rem ―- ここまで ―-
4行をコピペする
複数行をコピペじゃ駄目なの?
例えば、この内容をメモ帳に記述しておいて
rem ―- ここから ――
dism /online /cleanup-image /restorehealth
sfc /scannow
rem ―- ここまで ―-
4行をコピペする
744デフォルトの名無しさん
2020/04/23(木) 09:07:36.24ID:Z6s7Y3Lu >>742
複数コマンドを1行で実行したいということなら、、、
A & B ... A実行後にBを実行
A | B ... Aの実行結果をBに渡して実行
A && B ... Aが成功したらBを実行
A || B ... Aが失敗したらBを実行
長いコマンドを複数行に分割したいなら、、、
Sentence1 ^<改行>
Sentence2
(サーカムフレックスで継続)
複数コマンドを1行で実行したいということなら、、、
A & B ... A実行後にBを実行
A | B ... Aの実行結果をBに渡して実行
A && B ... Aが成功したらBを実行
A || B ... Aが失敗したらBを実行
長いコマンドを複数行に分割したいなら、、、
Sentence1 ^<改行>
Sentence2
(サーカムフレックスで継続)
745デフォルトの名無しさん
2020/04/23(木) 12:04:05.59ID:qTwHi2aC ()で囲めばいい。
(timeout /t 300
cd d f:\hoge
for %f in ( *.jpg ) do (
・・・
)
)
正式名称が何かは知らないが勝手にブロックと呼んでる。
(timeout /t 300
cd d f:\hoge
for %f in ( *.jpg ) do (
・・・
)
)
正式名称が何かは知らないが勝手にブロックと呼んでる。
746デフォルトの名無しさん
2020/04/23(木) 14:59:02.07ID:WFX6w8Jo >>744
そういうのがあるのか、| 以外知らなかった
そういうのがあるのか、| 以外知らなかった
747デフォルトの名無しさん
2020/04/23(木) 14:59:42.71ID:WFX6w8Jo >>745
これも知らなかった
これも知らなかった
748デフォルトの名無しさん
2020/04/23(木) 15:25:29.03ID:153+oMoq >>743コピペでももちろんいいですが、知っておきたかったです
749デフォルトの名無しさん
2020/04/23(木) 16:03:20.39ID:eZrYYRVL なんでバッチ嫌なの?
750デフォルトの名無しさん
2020/04/23(木) 17:31:56.25ID:P2MaiEJS751デフォルトの名無しさん
2020/04/23(木) 21:20:47.89ID:M8I+Acr1752デフォルトの名無しさん
2020/04/26(日) 18:05:24.10ID:FVxXRtXH 連番をつけるコードでまだ躓いています
hoge.txt
hogehoge.txt
を
hoge(1).txt
hogehoge(2).txt
としたいです
echo off & for %i in (*.txt) do (ren %i ???)
このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?
hoge.txt
hogehoge.txt
を
hoge(1).txt
hogehoge(2).txt
としたいです
echo off & for %i in (*.txt) do (ren %i ???)
このはてな部分に連番を指定するためにインデックスを指定しないといけないと思うんですが、%i自体にはファイル名が入っていると思います。インデックスは取れるんでしょうか?
753デフォルトの名無しさん
2020/04/26(日) 18:36:58.48ID:FVxXRtXH バッチでset /aなどのオプションがありますが、/aは計算を伴う場合に使うそうです。
この/aに意味はあるのですか?
何らかの単語の略だと覚えやすいんですが。
この/aに意味はあるのですか?
何らかの単語の略だと覚えやすいんですが。
754デフォルトの名無しさん
2020/04/26(日) 18:40:50.40ID:Pfsg7A5O その程度ぐぐれば出てくるでしょ
インデックスのカウント用変数が必要+変数の遅延展開
丸括弧のエスケープが必要
aはarithmeticの略
インデックスのカウント用変数が必要+変数の遅延展開
丸括弧のエスケープが必要
aはarithmeticの略
755デフォルトの名無しさん
2020/04/26(日) 20:15:42.23ID:cczyU4e/ @echo off & set n=1& chcp 65001 > nul
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%"
goto :eof
:x
ren %1 "%~n1(%n%)%~x1" & set /a n+=1
for /f "delims="eol^= %%i in ('dir /b *.txt') do set a=%%i& call :x "%%a%%"
goto :eof
:x
ren %1 "%~n1(%n%)%~x1" & set /a n+=1
756デフォルトの名無しさん
2020/04/26(日) 22:00:20.95ID:zKIVBOto 1Point ノウハウ
dir ですべてのファイル、フォルダを表示したい場合は
dir /A
dir ですべてのファイル、フォルダを表示したい場合は
dir /A
757デフォルトの名無しさん
2020/04/26(日) 22:18:32.20ID:DxwpR+0O 普通に do call :x "%%~i" でいいと思うんだが何故いちいち set a=%%i とかしてるの?
何か理由あるん?
何か理由あるん?
758デフォルトの名無しさん
2020/04/26(日) 22:22:15.53ID:YV1WqKFq >>757
ファイル名に「%」入ってるとマズくない?
ファイル名に「%」入ってるとマズくない?
759デフォルトの名無しさん
2020/04/28(火) 05:49:29.43ID:ceHl0duT シェルスクリプトってお手軽省略表記にこだわりすぎるあまり
エスケープ処理が複雑化しバグりやすくなって本末転倒だよな
エスケープ処理が複雑化しバグりやすくなって本末転倒だよな
760デフォルトの名無しさん
2020/04/28(火) 05:57:02.60ID:l2PF55i3 そんなところで躓く能なしは、他の言語で書いても同じだよ
761デフォルトの名無しさん
2020/04/28(火) 13:01:40.55ID:DKHJb1hS 他の言語でもエスケープは必要なことはあるし同じこと
ただbatのように自身を置換して逐次実行するするようなことは
eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ
ただbatのように自身を置換して逐次実行するするようなことは
eval系の命令を使う場合なのでほぼ無いに等しいので意識されないだけ
762デフォルトの名無しさん
2020/04/28(火) 16:44:00.76ID:3RXW9/E3 要するに分かりにくい
ここで初心者にイロハから質問されてもレスがしにくい
リネームソフトでも使え
ここで初心者にイロハから質問されてもレスがしにくい
リネームソフトでも使え
763デフォルトの名無しさん
2020/04/28(火) 17:37:46.72ID:7TaGv6sC >>759
シェルスクリプトでエスケープ処理が複雑なんて
したことがないんだがどういうケース?
むしろバッチファイルのほうがややこしすぎる
バッチファイルでダブルクォートはいつつけるか言える?
スペースが含まれたファイル名とか
バッチファイルでこれの出力結果は
echo "C:\Program Files"
↓これです。(ダブルクォート含む)
"C:\Program Files"
シェルスクリプトでエスケープ処理が複雑なんて
したことがないんだがどういうケース?
むしろバッチファイルのほうがややこしすぎる
バッチファイルでダブルクォートはいつつけるか言える?
スペースが含まれたファイル名とか
バッチファイルでこれの出力結果は
echo "C:\Program Files"
↓これです。(ダブルクォート含む)
"C:\Program Files"
764デフォルトの名無しさん
2020/04/28(火) 18:05:03.26ID:3RXW9/E3 どういうケースって、すぐ上の奴だろ
765デフォルトの名無しさん
2020/04/28(火) 18:18:07.54ID:7TaGv6sC >>764
もしかしてバッチファイルとシェルスクリプトの違いわかってないの?
もしかしてバッチファイルとシェルスクリプトの違いわかってないの?
766デフォルトの名無しさん
2020/04/28(火) 18:19:14.04ID:7TaGv6sC シェルスクリプトっていうのはUnixやLinuxの
/bin/shとかbashのことなんだが
/bin/shとかbashのことなんだが
767デフォルトの名無しさん
2020/04/28(火) 18:20:52.04ID:RB8xSOb3 ファイル数わからんけどリネームソフト使えば一分かからんで終了
768デフォルトの名無しさん
2020/04/28(火) 20:35:28.46ID:C/yTg51l769デフォルトの名無しさん
2020/04/28(火) 20:39:22.04ID:C/yTg51l ちなみにMS-DOSにはエスケープ文字なんて無い
770デフォルトの名無しさん
2020/04/28(火) 20:40:45.75ID:f4hk4dsD771デフォルトの名無しさん
2020/04/28(火) 20:51:25.37ID:l2PF55i3 >>770
頑張ってググってきたんだからほめてやれよ
頑張ってググってきたんだからほめてやれよ
772デフォルトの名無しさん
2020/04/28(火) 22:38:03.31ID:0mXw36Cx >>769
Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。
Delims句でイコールを区切り文字にしたいときはサーカムフレックスでエスケープする必要があるときがあるけどね。
773デフォルトの名無しさん
2020/04/28(火) 23:55:09.09ID:3RXW9/E3 cmdはシェルだ。定義も糞もない
774デフォルトの名無しさん
2020/04/29(水) 00:05:03.59ID:kLiglYQz >>768
cmdじゃないじゃん
cmdじゃないじゃん
775デフォルトの名無しさん
2020/04/29(水) 06:34:57.98ID:bLWOmnfL UNIXとかでshやbashがログインシェルとかインタラクティブシェルになるのと同じだよ
shやbash=cmd
シェルスクリプト=バッチファイル
シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
shやbash=cmd
シェルスクリプト=バッチファイル
シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
776デフォルトの名無しさん
2020/04/29(水) 06:56:52.10ID:SXZJio07 とはいえ逆にunixでバッチがどうとか言うと違和感あるしな
>>766みたいな感覚が一般的
>>766みたいな感覚が一般的
777デフォルトの名無しさん
2020/04/29(水) 07:15:11.82ID:sus1L+2H >>775
> シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
シェアならLinuxのシェルスクリプトの方が多いよ
今はsystemdに置き換えられつつあるが、起動処理の多くで
シェルスクリプトが使われていた。
各アプリのビルドなどでもシェルスクリプトは使われている。
それに対してバッチファイルは殆ど使われていない。
そもそもWindowsのコマンドは、他のコマンドの出力を読み取って
別のコマンドで処理するように設計されていない
単に呼び出すだけ。だからバッチファイルという名前になってる
例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合
なにも表示されないのでスクリプトとして使いやすいが
Windowsのcopyは人間用のメッセージがいちいち出る
コマンドの出力を変数に入れるだけでも大変
遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる
そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を
するためだからバッチファイルはシェルスクリプトだけでなく
PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている
一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが
面倒になってるので両立してるシェルスクリプトにはかなわない
> シェアが段違いのWindowsのバッチファイルがシェルスクリプトよりずっと複雑なのは当たり前
シェアならLinuxのシェルスクリプトの方が多いよ
今はsystemdに置き換えられつつあるが、起動処理の多くで
シェルスクリプトが使われていた。
各アプリのビルドなどでもシェルスクリプトは使われている。
それに対してバッチファイルは殆ど使われていない。
そもそもWindowsのコマンドは、他のコマンドの出力を読み取って
別のコマンドで処理するように設計されていない
単に呼び出すだけ。だからバッチファイルという名前になってる
例えばcopyコマンドであってもシェルスクリプトであれば、コピーが正常に終了した場合
なにも表示されないのでスクリプトとして使いやすいが
Windowsのcopyは人間用のメッセージがいちいち出る
コマンドの出力を変数に入れるだけでも大変
遅延環境変数の展開を使わなければ変数の中にメタ文字的なものが入るだけで簡単に壊れる
そもそもの設計思想がスクリプトを組むためではなく、単にコマンドを並べるという使い方を
するためだからバッチファイルはシェルスクリプトだけでなく
PowerShellスクリプトやVBScriptよりも使いづらくなってしまっている
一方、PowerShellスクリプトやVBScriptはコマンドをよびだすのが
面倒になってるので両立してるシェルスクリプトにはかなわない
778デフォルトの名無しさん
2020/04/29(水) 07:22:12.44ID:VzuV0Enx アスペがうだうだ言ってるだけで全く「会話」が進行していないな
779デフォルトの名無しさん
2020/04/29(水) 07:36:25.95ID:SXZJio07 スレチだから、もうやめろ
780デフォルトの名無しさん
2020/04/29(水) 07:51:09.96ID:sus1L+2H やなコッタ
781デフォルトの名無しさん
2020/04/29(水) 22:15:38.24ID:f6LPbIhG パンナコッタ
782デフォルトの名無しさん
2020/04/29(水) 22:43:10.94ID:sus1L+2H メロンパンナ
783デフォルトの名無しさん
2020/04/30(木) 00:25:02.17ID:6g7fIyNp マンコッタ茶園のアッサムティーをすすりながら仕事するのが何よりの贅沢
784デフォルトの名無しさん
2020/04/30(木) 23:56:54.10ID:4NDFLh29 アッサムティー好き、いいよね
785デフォルトの名無しさん
2020/05/01(金) 20:45:42.45ID:I+dUmCMk カタコッタ
786デフォルトの名無しさん
2020/05/07(木) 18:46:37.87ID:jiFNKMfo 滅茶苦茶初歩的な質問ですまん
バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?
バッチファイルからPythonスクリプト実行してPythonスクリプト側でprintした文字列をバッチファイル側で取得する方法ってある?
787デフォルトの名無しさん
2020/05/07(木) 18:51:16.63ID:cw3NlGJG FOR /F ["オプション"] %変数 IN ('コマンド') DO コマンド [コマンド パラメーター]
または usebackq オプションの場合:
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター]
または usebackq オプションの場合:
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメーター]
788デフォルトの名無しさん
2020/05/07(木) 18:51:30.99ID:jiFNKMfo もしくはコマンドプロンプトに出力された文字列を出所問わず取得したい
789デフォルトの名無しさん
2020/05/07(木) 19:01:03.56ID:jiFNKMfo790デフォルトの名無しさん
2020/05/07(木) 19:33:24.65ID:lct9jPsZ 昔だったら tail -f
791デフォルトの名無しさん
2020/05/07(木) 19:34:28.15ID:2gF3mugX792デフォルトの名無しさん
2020/05/07(木) 19:47:29.96ID:jiFNKMfo logzeroさらっと調べても設定全く分からんので今回は該当部分の出力だけlogzero.infoからprintにして無駄な出力を省いた
出力取得できたのでまあよし
出力取得できたのでまあよし
793デフォルトの名無しさん
2020/05/07(木) 20:17:47.30ID:2gF3mugX >>792
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "tokens=*" %%i in ('py test.py 2^>^&1') do (
set IN!n!=%%i
set /a n+=1
)
set /a n-=1
for /l %%i in (0,1,%n%) do (
echo.!IN%%i!
)
endlocal
@echo off
setlocal enabledelayedexpansion
set n=0
for /f "tokens=*" %%i in ('py test.py 2^>^&1') do (
set IN!n!=%%i
set /a n+=1
)
set /a n-=1
for /l %%i in (0,1,%n%) do (
echo.!IN%%i!
)
endlocal
794デフォルトの名無しさん
2020/05/12(火) 09:27:08.95ID:hWMQZbFi >コマンドプロンプト入門 Kindle版
2020年にこれを出すとはチャレンジャーすぎるな
2020年にこれを出すとはチャレンジャーすぎるな
795デフォルトの名無しさん
2020/05/12(火) 16:03:14.69ID:PeLhefIP amazonで、確認すると、2019/09の出版みたいですね。
どうせなら、power shellの本出したほうが良かったかも。
どうせなら、power shellの本出したほうが良かったかも。
796デフォルトの名無しさん
2020/05/12(火) 18:45:23.48ID:NJ7uTfC9 ファイル名に「b」を含むファイルをコピーするときに
たとえば
abc.txt というファイルがあって
copy *b*.txt def.txt
がオッケーで
copy *b* def.txt
がエラーなのはなぜですか?
*は0文字以上の文字列なので
両方とも成功すると思っていたのですが
たとえば
abc.txt というファイルがあって
copy *b*.txt def.txt
がオッケーで
copy *b* def.txt
がエラーなのはなぜですか?
*は0文字以上の文字列なので
両方とも成功すると思っていたのですが
797デフォルトの名無しさん
2020/05/12(火) 19:05:09.66ID:fhydWmjd >>795
KindleストアにPowerShellのがいっぱいあるやん
KindleストアにPowerShellのがいっぱいあるやん
798デフォルトの名無しさん
2020/05/12(火) 19:55:35.27ID:UaCqmgBQ799デフォルトの名無しさん
2020/05/12(火) 19:59:26.87ID:fhydWmjd *b* が一つでもゴミが付くしね(0x1A)
800デフォルトの名無しさん
2020/05/23(土) 20:41:18.51ID:H5g1ckea Windows Terminal で音を鳴らすにはどうすればいいですか
コマンドプロンプトではControl-Gを出力してたんですが
Windows Terminalでは無視してくれやがります
コマンドプロンプトではControl-Gを出力してたんですが
Windows Terminalでは無視してくれやがります
801デフォルトの名無しさん
2020/05/23(土) 22:23:07.24ID:105ldQbQ start beep.wav
802デフォルトの名無しさん
2020/05/23(土) 22:45:59.81ID:H5g1ckea そんなんだったら
>copy con beep.cmd
echo ^G
waitfor /T 3 waiting
^Z
1 個のファイルをコピーしました。
>start /min cmd /d/c beep.cmd
とするけどもっといい手はないかなと
>copy con beep.cmd
echo ^G
waitfor /T 3 waiting
^Z
1 個のファイルをコピーしました。
>start /min cmd /d/c beep.cmd
とするけどもっといい手はないかなと
803デフォルトの名無しさん
2020/05/23(土) 23:00:15.85ID:H5g1ckea ああstartで自分を呼んで鳴らせばいいんだ
自己解決しました
自己解決しました
804デフォルトの名無しさん
2020/05/24(日) 00:25:04.68ID:VYuvM9gt805デフォルトの名無しさん
2020/05/24(日) 00:40:12.55ID:f4O9jhZ+ その手がWindows Terminalでは使えないって話
https://aka.ms/terminal-documentation
Windows ターミナルの概要 | Microsoft Docs
https://aka.ms/terminal-documentation
Windows ターミナルの概要 | Microsoft Docs
806デフォルトの名無しさん
2020/05/24(日) 00:46:46.59ID:VYuvM9gt807デフォルトの名無しさん
2020/06/03(水) 20:30:01.66ID:HabAm56l バッチでやるような処理でも
勉強兼ねてpowershell使って処理するようにしたほうがいいですか?
勉強兼ねてpowershell使って処理するようにしたほうがいいですか?
808デフォルトの名無しさん
2020/06/03(水) 20:31:25.42ID:5eIQQTQm 勉強でなら、そりゃそうだろと言うしかないね
809デフォルトの名無しさん
2020/06/03(水) 20:32:34.71ID:HabAm56l 実務上はどうです?
バッチの方が情報多いからいいんですか?
バッチの方が情報多いからいいんですか?
810デフォルトの名無しさん
2020/06/03(水) 21:04:50.01ID:mm84GRB0 >>809
どういう現場か知らないけど
Widn7 SP1 PSv2 縛り
なんて現場でPS書きたいとか思わないね。
使わせてくれる現場なら使うべきだし、そうでないならバッチをシコシコ書くしかないのよ。
どういう現場か知らないけど
Widn7 SP1 PSv2 縛り
なんて現場でPS書きたいとか思わないね。
使わせてくれる現場なら使うべきだし、そうでないならバッチをシコシコ書くしかないのよ。
811デフォルトの名無しさん
2020/06/03(水) 21:27:53.38ID:QZ+HyrOs シコシコかくのよ
812デフォルトの名無しさん
2020/06/03(水) 22:11:19.84ID:JNM2fzED PSでできること=C#でできることだからバッチとは全然できることが違うよ
PSv2でも十分バッチとは天地の差がある
PSv2でも十分バッチとは天地の差がある
813デフォルトの名無しさん
2020/06/03(水) 22:22:36.62ID:5eIQQTQm 元の質問が、「バッチでやるような処理でも」なんだけどな
ちゃんと読んでるか?
ちゃんと読んでるか?
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かな…。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 映画界はすっかり『邦高洋低』が定着 「名探偵コナン」歴代1位スタートの陰でハリウッド俳優の来日も激減… 洋画の寂しすぎる現状★2 [冬月記者★]
- 【テレビ】 永野芽郁&田中圭の不倫報道をワイドショーが『全スルー』に募るネットの違和感 「広末の不倫はあんなにやったのに」★2 [冬月記者★]
- 中居正広、水面下で反撃の準備か 第三者委員会の報告書での“性暴力者”認定に強い抵抗感、自らの口で真相を明らかにする考えも ★5 [Ailuropoda melanoleuca★]
- うずくまる永野芽郁に5600件以上のコメント殺到「本当のことを話せばいい」「芽郁ちゃんを信じたい」「コメ欄閉じたほうが良い」の声 [muffin★]
- 【高知】「殺された…」自動運転モードで着替えか 正面衝突で1歳児死亡 運転手「記憶ない」 ★2 [ぐれ★]
- 【TV】TBS、番組出演者によるアナウンサーの被害を追加報告「交際を迫られた」「身体接触の被害」「キスを求められ…」 [ぐれ★]
- 【悲報】ケンモウの石見舞菜香スレ、爆速で埋め立てられるwwwwwwwwwwwwwwwwwwww
- 全自動ウンチングマシーンハッシーン🤖 ブリブリブリブリブリブリブリ💩🏡
- 👩「彼氏が隣でうどん食べてるのに私はとり天3分の1しか食べれない」→炎上 [834922174]
- オーストラリア「コアラ駆除するで!」→ヘリからの狙撃で700頭の🐨を駆除 [834922174]
- GW暇ならアニソン聴こうぜ・・・
- 【悲報】斎藤元彦陣営のネット広報担当会社が投稿したnoteで騒然★663 [931948549]